#include <stdio.h>
int main (void)
{
char *str = "Hello"; //defining and initializing the str pointer, which is directing to 'H'.
printf("%s\n", str);
printf("%p\n", str);
return 0;
}
结果是:
Hello
0000000000404000
我的问题是0000000000404000来自哪里?
答案 0 :(得分:2)
格式说明符from datetime import timedelta
with open('/proc/uptime', 'r') as f:
usec = float(f.readline().split()[0])
usec_str = str(timedelta(seconds = usec))
# and send message usec_str
将打印%p
变量中包含的地址,而char* str
说明符将打印实际的字符串文字%s
。内存Hello
中的地址是0x00000000 00404000
所在的位置。
答案 1 :(得分:0)
在Bjarne Stroustrup的话:
%s
该参数被视为字符串(字符指针)和字符串中的字符 打印到空字符或直到达到精度规格指示的字符数;但是,如果精度为0或缺少,则打印所有最多为null的字符;
%p
该参数被认为是一个指针。打印的表示取决于实现;