一,含义 两层含义: 1,变量 (保存地址,占有内存空间) 2,数据类型 (里面存储的类型是指针) 二,作用 存储地址,通过地址 直接对该地址的内存空间中的数据进行操作 三,怎么用 定义 类型 *指针名; int *p; 赋值 指针名=地址;p=&a; 四,什么时候用 需要存储地址, 以便于直接操作地址及地址对应的内存数据 五,特点 1,地址 指针是变量,分配后占有固定的内存空间,所以自身的地址不变,但其所存储的地址可以变化 2,&p 指针自己的地址 p指针存的的地址 *p指针存的的地址的内存空间 3,指针不赋值为野指针,不知指向何方 4,优先级在指针中的应用 int (*p)[3];(*先修饰p,表示p是一个指针,指向数组) int *p[3] ; (p和[3]先结合,*修饰整个数组,那么整个数组都是指针,这是在定义一个数组). 5,和之前变量的区别 函数调用时,变量传递的是数据 操作是自己取过来的数据,不是原数据,指针直接操作原数据 6,指针类型必须与所指变量类型一致; 7,64位编译器下,指针占8字节 32位是4个 16位是2个 六 今天编的代码 - //指针练习,用指针把a的值变为100
- #include <stdio.h>
- void change(int *p);
- int main()
- {
- int a=0;
- int *b=&a;
- change(b);
- printf("%d\n",a);
- return 0;
- }
- void change(int *p)
- {
- *p=100;
- }
|