C/C++ 学习笔记

简介:

1、假设某个C函数的声明如下:

?
1
void  foo( int  x);

    函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C函数。C++提供了一个C连接交换指定符号 extern "C" 来解决这个问题。例如:

?
1
2
3
4
5
extern  "C"
{
     void  foo( int  x);
     ...
}

或者写成

?
1
2
3
4
5
extern  "C"
{
#include "myHeader.h"
.. //其他C头文件
}

    这就告诉C++编译器,函数foo是个C连接,应该到库中找名字_foo 而不是找 _foo_int 。C++编译器开发商已经对C标准库的头文件作了extern "C"处理,所以可以用#include 直接引用这些头文件。


2、指针

(1)指针变量初始化的方法:

?
1
2
int  a;
int  *p = &a;

(2)赋值语句的方法:

?
1
2
3
int  a;
int  *p;
p = &a;

    不允许把一个数赋予指针变量,故下面的赋值是错误的:

?
1
2
int  *p;
p = 100;

    被赋值的指针变量前不能再加”*“说明符,如写成 *p = &a 也是错误的。

(3)打印:

?
1
2
int  a, *p = &a;
printf ( "%d" , *p);

(4)运算:

?
1
2
3
4
5
int  a=10, b=20, s, t, *pa, *pb;
pa = &a;
pb = &b;
s = *pa + *pb;
t = *pa * *pb;

(5)通过结构指针变量访问结构变量成员:

?
1
p->num;     //(*p).num


3、联合类型

    在”联合“中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。

目录
相关文章
|
3月前
|
算法 API 计算机视觉
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
30 0
|
4月前
|
缓存 网络协议 Linux
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
62 0
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
57 0
|
4月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
56 0
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
46 0
|
4月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
62 0
|
4月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
44 0
|
4月前
|
算法 Linux Shell
Linux C/C++ 开发(学习笔记三):Linux C编程案例
Linux C/C++ 开发(学习笔记三):Linux C编程案例
25 0
|
19天前
|
C++
C++虚函数学习笔记
C++虚函数学习笔记
16 0
|
28天前
|
机器学习/深度学习 存储 算法
基础算法学习笔记(C++)
基础算法学习笔记(C++)
56 0