假设我有以下字符串:
char *my_string = "Stack";
据我所知char *
,保存字符串第一个字符的内存地址"Stack"
。在计算机内存中,它可能表示如下:
------------------------
| S | t | a | c | k | \0|
------------------------
^
my_string
如果我调用: printf("%s\n", my_string);
,则会打印整个字符串。编译器如何知道打印整个字符串?因为据我了解,它只有一个字符的地址。