指针操作整型一维数组

发布时间:2026/7/29 3:10:54
指针操作整型一维数组 一、指针变量初始化指针变量定义时可以同时赋初值int a 10; int *p a; // p 指向 a若定义时未初始化指针变量的值是随机的野指针访问随机空间不一定能用 当基类型 会出现段错误安全做法初始化为NULL空地址通常为 0 号地址0号地址不能被访问int *p NULL;仍然会出现段错误类型不同 但是放得下 因为都是8字节强制类型转换 避免报警结果是0x5678变短是因为 找到之后从定位处开始偏移处sizeof(基类型)大小的一块空间 short 2字节考点判断电脑大小端大端数据的高位字节存储在低地址。小端“高高低低” 数据的低位字节存储在低地址。判断电脑大小端 如果是1 则小端 是0 则大端指针运算算术运算p n运算结果还是指针 表示的含义 pN*sizeof(基类型) ---p指向了第N1个基类型p - n指针向前移动。p/p--加/减一个基类型大小。指针相减p - q必须同类型运算结果表示 两个地址间 差了几个基类型关系运算同类型指针可比较大小比较地址值,,,,,!指针操控整型一维数组数组名代表首元素的地址a等价于a[0]。 a[0] //首元素的地址 a[0] a 数组名用什么类型指针变量存储这个地址?a[0] //数据类型 --- int型a[0] //地址的数据类型 --- int * 型int *p a[0];int *p a; //说 p指向了数组a*p //就等价于首元素p1 //a[1]元素的地址 *(pi) a[i]//*(p1) a[1]数组的下标运算 本质上 就是指针运算只需要知道首元素地址 结合数组特点和指针运算就可以访问到整个数组的地址练习示例练习1、打印第二种方法更好只需要知道首元素和最后一个元素 更灵活 可以只打印一段范围的地址练习2、打印最大值练习3、倒序两种方法练习4、选择排序练习4、冒泡练习5、插入练习6、查找第二种用递归练习7、快速排序指针操作字符型一维数组char s[] hello; char *p s; // p 指向 s[0] *(p i) // 访问第 i 个字符const 修饰指针const 离谁近就是用来限定的谁的const char *s或char const *sconst 靠近基类型限定不能通过*s修改所指内容但s可指向其他地址。char *const sconst 靠近变量名 s限定s本身不可改不可指向其他地址但可通过*s修改内容。const char * const s既不能改指向也不能改内容。在字符串相关的函数形参中能写成const char * 尽可能写成const char *优点可以提前发现 逻辑错误。参数适用性强可接收数组名、字符串常量、const char *变量。代码更严谨。