C语言-指针(一级和二级)

指针的大小(sizeof)
32位系统 4字节
64位系统 8字节

一级指针


	int a = 10;
	int* p = &a;
	printf("%p,%p,%p\n", &a, p, &p);//变量a的地址  变量a的地址  p指针的地址
	//p指针的地址(内存中存储p指针位置的地址)
	printf("%d,%d\n", a, *p);//10 10
	

说明
&a,a在内存中的地址
p,p中存储的是a在内存中的地址
&p,p指针的地址(内存中存储p指针位置的地址)

二级指针

	int a = 10;
	int* p = &a;
	int* *p1 = &p;
	
	//一步一步的分析
	//*p1 == p;
	//*p == a;
	//**p1 == *p == a;
	
	printf("%p,%p,%p\n", &p1, p1, &p);//p1空间的地址  p空间的地址  p空间的地址

	printf("%d,%d,%d\n", a, *p, **p1);//10 10 10

	printf("%p,%p,%p\n", *p1, p, &a);//a的地址  a的地址  a的地址
	

p是int类型的指针
要存储int
类型的指针,需要int** 类型指针
p1是int** 类型的指针

猜你喜欢

转载自blog.csdn.net/weixin_43340991/article/details/86523643