本人新手,资料作学习笔记使用,如有不对欢迎指出感谢。
#includeint main() { int a = 20; int* p = &a; printf("指针变量*p指向了a变量内存地址的值=%dn",*p); printf("打印了*p指向了a变量内存地址=%pn", *p); printf("打印了a变量内存地址=%pn", a); printf("指针P变量P内存地址的值=%pn", p); }
打印出来以后发现,a变量地址0000000000000014其实和*p的地址0000000000000014是一样的,这也验证了*p其实是指向了a内存地址的值,所以%p情况下,打印出来的地址也一样,同时操作*p=100;等同于a=200;
但是如果直接不加*直接打印p变量此时发现内存000000A0DA71F8D4地址是不一样的,这又是为什么呢?,因为这样打印的是指针变量p的地址,不是指针变量p指向变量a的地址,所以我们在日常使用中,需要注意p和*p的区别。



