我真的很困惑理解C中的数组指针

时间:2016-12-14 23:45:19

标签: c arrays pointers

#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来自哪里?

2 个答案:

答案 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该参数被认为是一个指针。打印的表示取决于实现;