#include<stdio.h>
/*
内存会划分为一个个的内存单元(一个内存单元的大小为1byte)
*/
int main()
{
int a = 10;
//&a获取a的地址,&叫取地址符
printf("%p\n", &a);
/*
打印指针的地址用%p,通过十六进制打印,
不建议用%d,因为指针的内存可能比int型大
也不建议用%x,%x虽然打印的是十六进制,但是无符号,指针可能是负的
*/
int* p = &a;
//p存储的是a的地址,*p指向的是a的值,&p是获取指针p的地址
//*p是解引用操作,意思就是通过p中存放的地址,找到p所指向的对象
printf("%p\n", *p);
printf("%zu\n", sizeof(char *));
printf("%zu\n", sizeof(int *));
printf("%zu\n", sizeof(double *));
//所有类型的指针大小都是8byte(64位系统)或4byte(32位系统)
//打印sizeof()的返回值使用%zu
return 0;
}
评论区