1. 指针的定义方式:
示例一:1
2
3int a = 5;
int *p;
p = &a;
说明:p为指针变量,int p 中的为类型说明符,声明p的类型为指针变量类型。指针变量必须是指向内存地址(内存指针),&符为取地址运算符。
示例二:
1 | int a = 5; |
说明:先声明一个指针变量,然后对这个指针变量进行赋值。
2. 指针变量的使用
1 | int a = 5; |
说明:这里的printf(“ p = %d“, p);中的与上边声明指针变量的int p的含义是不同的,这里的*为指针运算符,不是类型说明符。
printf("*&a = %d", *&a); //运行结果为a本身
由于*和&的优先级相同,所以会先进行&a进行取a的内存地址,然后在通过*指针运算符,指向a的内存地址并返回这块内存单元存放的数据。
总结
- int *p 声明指针变量的* 为类型说明符,他的性质和int long的作用相似,都是说明变量的类型。
- *p 获取指针变量的为指针运算符,和&的类型都是一样的就是参与运算的,只是&获取的是内存的地址,获取的是内存地址为该指针变量上存储的数据