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() 字符串格式化-想要的用占位符,不想要的原模原样、、scanf遇到空格,换行,会认为是结束标志 sprintf 将一个字符串存在另一个字符串中 sscanf 将字符串的内容读出来,存在字符串中,可以将一个字符转划分 strchr() strstr() 字符串查找 返回值类型为指针 strtok() 字符串分割 如果找到标志位用\0替换 会破坏源字符串 atoi() atof() atol() 字符串类型转换
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() 字符串格式化-想要的用占位符,不想要的原模原样、、scanf遇到空格,换行,会认为是结束标志 sprintf 将一个字符串存在另一个字符串中 sscanf 将字符串的内容读出来,存在字符串中,可以将一个字符转划分 strchr() strstr() 字符串查找 返回值类型为指针 strtok() 字符串分割 如果找到标志位用\0替换 会破坏源字符串 atoi() atof() atol() 字符串类型转换
|