gpt4 book ai didi

c - 我想知道未使用的字符串是否消耗空间以及为什么程序使用已使用的字符串运行

转载 作者:行者123 更新时间:2023-11-30 20:29:36 24 4
gpt4 key购买 nike

我想知道 C 编译器对字符串的行为

我正在使用带有 GCC 的 Windows 7 代码块

int main()
{
"1145"; "ho";
printf("hello");
}

所以我想知道未使用的字符串是否消耗内存空间

最佳答案

首先您需要了解 l(eft) 值和 r(ight) 值。左值实际上是存储对象的内存位置。右值是数据,应该存储在内存中的某个位置(左值)。

所以你的构造“1145”; “嗬”;

产生两个未在任何地方分配的右值。您甚至可以编写此(完全有效)代码:

int main(){
;;
printf("hello");
}

这是允许的,因为 ;null 语句 运算符。您将不止一次看到类似

的表达式
while(*ptr++);   // ajusts pointer until contents of the pointer become 0

其中 while 实际上执行每次迭代 ;

<小时/>

我 99% 确定该字符串根本没有使用任何空格,因为没有任何选项的 GCC 会识别未使用的语句,并且不会为此行生成任何代码。

C code Compiled code

关于c - 我想知道未使用的字符串是否消耗空间以及为什么程序使用已使用的字符串运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57307172/

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