C++ 指针总结

1、指针

就是内存中的一个地址编号 指针变量 指针变量用于存储地址 指针变量也是一个变量

2、指针间接赋值

一、两个变量 普通变量 指针变量
二、建立关系 指针变量=&普通变量
三、通过*运算符赋值 *指针变量=值

3、指针大小

在32位操作系统下所有指针类型都是4个字节大小
在64位操作系统下所有指针类型都是8个字节大小

4、野指针 指针变量指向一个未知的空间 操作野指针对应的内存空间可能报错

空指针 指针变量指向内存编号为0的空间 #define NULL ((void*)0) 操作空指针对应的内存空会报错 在程序中用作于条件判断
万能指针 void* 可以将所有指针类型赋值给万能指针 万能指针一般用作于函数形参

5、const修饰的指针

一、通过指针改变常量的值
二、const修饰的指针类型
三、const修饰的指针变量
四、const修饰指针类型修饰指针变量 常量指针

6、指针和数组

一、指向数组的指针 指针变量[下标] *(指针变量+偏移量)
二、指针运算 跟指针类型 对应的基本类型
三、指针数组 每一个元素都是一个指针 指针数组是一个二维数组模型

7、多级指针

一级指针指向变量的地址
二级指针指向一级指针的地址
三级指针指向二级指针的地址
*三级指针二级指针&一级指针
**三级指针==*二级指针一级指针&变量
***三级指针==**二级指针==*一级指针==变量

8、指针和函数

一、值传递和地址传递
二、数组作为函数参数 退化为指针丢失精度 需要传递元素个数
三、指针作为函数返回值

9、指针和字符串

一、栈区字符串和数据区字符串
二、字符串数组 指针数组模型
三、const修饰的指针 针对于字符串
四、主函数的形参
int argc 表示参数个数
char* argv[] 表示参数内容
五、字符串和指针的应用
字符串查找字符串个数
字符串查找字符个数
字符串反转和回文
六、字符串处理函数
strcpy() strncpy() 字符串拷贝
strcat() strncat() 字符串追加
strcmp() strncmp() 字符串比较 0 1 -1
sprintf() sscanf() 字符串格式化
strchr() strstr() 字符串查找 返回值类型为指针
strtok() 字符串分割 如果找到标志位用\0替换 会破坏源字符串
atoi() atof() atol() 字符串类型转换

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章