gpt4 book ai didi

C 字符串。C 中字符串返回什么

转载 作者:行者123 更新时间:2023-11-30 15:56:44 24 4
gpt4 key购买 nike

Possible Duplicate:
What is the difference between char s[] and char *s in C?

char *p="Help"
printf("%ud",p);

我得到“Help”的基地址作为输出。这是否意味着字符串(“Help”)总是返回其基地址。如果是这样,这与 C++ 的情况相同吗?

你也可以解释一下下面到底发生了什么吗?

char name[]="Hello";

我知道这很愚蠢,但我的大脑并不平静。

最佳答案

在您的文章中给出的第一个示例中,您使用的指针指向内存中存储字符的地址。这就是为什么当你打印 p 时你会得到一个地址。

在第二个示例中,您将创建一个字符数组,每个字符数组存储“Hello”中的一个字母。数组使用一些类似的内存访问原则,因为每个字符都存储在连续的内存位置中,因此 name[] 是一个内存位置,然后您访问的任何索引都是内存中到第一个元素所在的第一个指针 name[] 的偏移量。

为了简单起见,name[0] = 0x00、name[1] = 0x01、name[2] = 0x02 等等。现在,每个内存位置都保存一个值,该值代表字符串“Hello”的一部分。访问时,通过您正在访问的索引知道 name[x] 的位置,并且根据您访问元素的方式获得该内存位置或字符。

关于C 字符串。C 中字符串返回什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10949395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com