一、掌握高级指针
1、int iNumber; // 声明一个整型变量
2、int *iPnumber; // 声明一个指向整型的指针
3、int Func(); // 声明一个函数,返回值是整型
4、int *Func();
// 首先执行函数调用操作符,所以Func是一个函数,返回值类型是一个指向整型的指针
5、int (*Func)();
// 第一个括号意味着Func是一个指针,第二个括号是函数调用,第一个括号迫使间接访问在函数调用之前执行,所以Func是一个函数指针,它所指向的函数返回值是整型
6、int *(*Func)();
// 和上面第五个差不多,但Func所指向的函数返回值是又是一个指向整型的指针,对这个返回值进行间接访问才会得到一个整型值
7、int iArr[]; // 声明iArr是一个整型数组
8、int *iArr[];
// 下标优先级高,所以iArr依然是一个数组,但数组里面的元素类型是指向整型的指针,即指针数组
9、int Func()[]; // Func是一个函数,返回值是个整型数组
10、int (*Func[])()
// 第一个括号内表示Func是一个某类型的指针数组,第二个括号为函数调用,所以Func所表示的指针数组其元素是函数指针,这些函数指针所指向的函数的返回值类型是整型
A、指向函数指针数组的指针
顾名思义,有一个指针指向了一个函数指针数组,那么对这个指针进行间接访问,将会得到一个函数指针数组
int (*Func)();
int (*(*Func)[])();
类似上面:
int *Func[];
int *FFunc;
FFunc=&(*Func);
二、系统开发工程实战
三、C/C++内存管理
malloc/free分别用于动态内存分配和释放。
malloc会从内存池里提取一块适合的内存(连续的),并返回指向这块内存起始位置的指针,该指针的类型为void*指针(因为malloc不知道你请求的内存需要存储的是什么数据类型),而且这块内存并没有初始化。
new/delete
学习C语言入手很容易,但是坚持下去就是另一回事了,努力很简单,但是坚持和努力很困难,可以加下我的群466572167,群内有初级的项目,入门的资料也有全套的,也能一起交流学习提升自己的能力,对于有基础的话,群内也有各种项目可以练练手,
閱讀更多 java架構社區 的文章