n*******g 发帖数: 325 | 1 char * s = "1";
printf("%d\n", s);
求大牛指点!谢谢! |
l*********s 发帖数: 5409 | |
g****t 发帖数: 31659 | 3 printf result:
"Clearly the author of this shitty code is an idiot"
【在 n*******g 的大作中提到】 : char * s = "1"; : printf("%d\n", s); : 求大牛指点!谢谢!
|
z*y 发帖数: 1311 | 4 It will just print some address. |
n*****k 发帖数: 69 | 5 刚学C,我试了下,
warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has
type ‘char *’ [-Wformat=]
printf("%d\n", s);
改成"%s\n"结果就是 1
【在 n*******g 的大作中提到】 : char * s = "1"; : printf("%d\n", s); : 求大牛指点!谢谢!
|
d***a 发帖数: 13752 | 6 如楼上说的,会以整数格式打印一个内存地址。C编译器会把字符串"1"存在内存中,把
它的内存地址存在s中,打印出来的就是这个地址。
【在 n*******g 的大作中提到】 : char * s = "1"; : printf("%d\n", s); : 求大牛指点!谢谢!
|
e*******o 发帖数: 4654 | 7 https://godbolt.org/g/VySPIU
【在 d***a 的大作中提到】 : 如楼上说的,会以整数格式打印一个内存地址。C编译器会把字符串"1"存在内存中,把 : 它的内存地址存在s中,打印出来的就是这个地址。
|
n*******g 发帖数: 325 | 8
谢谢!这个解释很合理,难怪我看到的一个大数字,原来是内存地址。
【在 d***a 的大作中提到】 : 如楼上说的,会以整数格式打印一个内存地址。C编译器会把字符串"1"存在内存中,把 : 它的内存地址存在s中,打印出来的就是这个地址。
|