一、核心思想
- 数据类型有指针类型。
- 指针是有地址。
- *是向前取值,&(&表示取地址)是向后取值。
二、指针数据类型
- int* ,float*,int**等等。
- 建议写法 int* a ;而不推荐 int *a,这样写法看不出指针数据类型。
三、指针是有地址的
例子:
#include<stdio.h>
int main(){
int q;
int *p=&q;
printf("%d\n",p);
printf("%d\n",&p);
return 0;
}
输出:
从输出中可以看出地址的不同的。
四、*是向前取值,&是向后取值。
例子:
int a=2;
int* q=&a;
int** p=&q;
该例子的模式是值 地址 地址
*q表示a的值2,相当于向前取值
&q表示p的值0X002,相当于向后取值
代码解释
#include<stdio.h>
int main(){
int a=2;
int* q=&a;
int** p=&q;
printf("&a=%d\n",&a);
printf("&q=%d\n",&q);
printf("&p=%d\n",&p);
printf("*q=%d\n",*q);
printf("&q=%d\n",&q);
return 0;
}