gpt4 book ai didi

c++ - char指针或char变量的默认值是什么

转载 作者:行者123 更新时间:2023-11-30 18:23:39 24 4
gpt4 key购买 nike

下面是我尝试打印 char 变量和指针的默认值/值的代码。但无法在控制台上看到它。它是否有默认值或只是无法读取 ASCII 范围。?

#include <stdio.h>
int main()
{
char c, *cp;

printf("\nValue of char c:%c\n", c);
printf("\nValue of char ptr:%c\n", *cp);

return 0;
}

最佳答案

惊喜!!这里没有“默认”值,您正在冒险进入未定义的行为。

详细来说,如果变量是局部作用域且自动存储持续时间,除非显式初始化,否则存储的值是不确定的。进一步使用它会导致未定义的行为。

引用 C11,第 §6.7.9 章

If an object that has automatic storage duration is not initialized explicitly, its value is indeterminate.[....]

  • 对于第一种情况,你有一个 char 类型,如果在你的情况下,它可以有一个陷阱表示,它将导致 UB,否则,它将是随机值。

  • 对于第二种情况,您有一个 char * 类型,指针保存不确定的值,该值在您的程序上下文中无效,因此请尝试取消引用指针肯定会调用未定义的行为。

关于c++ - char指针或char变量的默认值是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51647727/

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