printf(" %p\n")
- C/C++ code
#include <stdio.h>int main(void){ int x; int *p1,*p2; p1 = &x; p2 = p1; printf(" %p\n",p2); /* print the address of x,not x's value */ return 0;}刚刚才知道还有个printf("%p")是输出变量的地址。以前怎么就没有看到过呢??
[解决办法]
printf参数就是挺多了,我也是不少都没用过,呵呵
- C/C++ code
%a 浮点数、十六进制数字和p-记数法(C99)%A 浮点数、十六进制数字和p-记法(C99)%c 一个字符 %d 有符号十进制整数 %e 浮点数、e-记数法%E 浮点数、E-记数法%f 浮点数、十进制记数法 %g 根据数值不同自动选择%f或%e.%G 根据数值不同自动选择%f或%e.%i 有符号十进制数(与%d相同)%o 无符号八进制整数%p 指针 %s 字符串%u 无符号十进制整数%x 使用十六进制数字0f的无符号十六进制整数 %X 使用十六进制数字0f的无符号十六进制整数%% 打印一个百分号
[解决办法]
- C/C++ code
#include <stdio.h>int main(){ int i = 10; printf("%0X\t%p\n",&i,&i); return 0;}//输出:22FF74 0022FF74Process returned 0 (0x0) execution time : 0.000 sPress any key to continue.
[解决办法]
printf(" %p\n",p2);
就是把p2的内容当成是指针(地址)来输出,不是输出p2的地址,实际上与输出十六进制格式差不多。
[解决办法]
知道就好,不过这个确实用的不多
[解决办法]
恩,学习一下
回复内容太短了!
[解决办法]
想看地址值,用%d输出指针也可以。
[解决办法]
任何变量都有地址,变量名指向它的内容(指针的内容是地址或者非指针类型内容可能是char int等),取地址一般得加&,可以通过%p打印出来,而指针特殊在他本身内容是地址,为此,打印%p的时候呢,如没有加&是打印的指针的内容(存的地址),而按照区地址一般加&的原则来打印指针的时候呢,打印的是指针的地址而不是其内容地址。
实践:
- C/C++ code
#include <stdlib.h> #include <stdio.h>int main(void){ int a=8; int *p; int *p2; printf("%p\n",&a); p=&a; printf("%p\n",p); printf("%p\n",*p); p2 = p; printf("%p\n",p2); printf("%p\n",p2); printf("p=%p\n",&p); printf("p2=%p\n",&p2); printf("%d\n",*p2); return 0;}
[解决办法]
[解决办法]
学习学习学习了~~~~~
[解决办法]
------解决方案--------------------
- C/C++ code
//这样理解的吧;#include <stdlib.h> #include <stdio.h>int main(void){ int a=8; int *p; int *p2; printf("a value :%p\n",&a);//a的地址 p=&a; printf("p value :%p\n",p);//把p的值按地址打印,p的是a地址 printf("%p\n",*p);//p指向的值 按地址打印 p2 = p; printf("p2 value :%p\n",p2);//把p2的值按地址打印,p的是a地址 printf("p address:%p\n",&p);//变量p自己的地址 printf("p2 address:%p\n",&p2);//变量p2自己的地址 printf("%p\n",*p2); return 0;}
[解决办法]
深刻学习中!~
望今后多见一些能学习的帖子,少一些看不懂的帖子!~
哈哈。。。
[解决办法]
出某些log文件时会用到。
[解决办法]
printf函数也有很大学问啊
[解决办法]
这个我常用。。。。。。
[解决办法]
好东西哦~~~谢谢分享~~~感谢了!!!!!!!!
[解决办法]
还有个挺好用的,如输出"0x123456"这个地址
- C/C++ code
printf("%#x\n", 0x123456); // %#: 0x
[解决办法]
噢,学到东西了~~~