c - 初始化错误

标签 c pointers initialization

任何人都知道为什么会这样:

int main(void)
{
char action;
int *i;
*i=10;
printf("%d",*i);
action='C';
printf("%c",action);
}

但这不是

int main(void)
{
char action='C';
int *i;
*i=10;
printf("%d",*i);
printf("%c",action);
}

我没有收到任何错误,但它不会运行!不明白为什么这个小小的差异会导致它崩溃

最佳答案

您的代码的行为未定义。它的行为没有逻辑。它本质上是随机的。试图分析为什么一些不相关的“微小差异”会改变您在实验中观察到的行为是浪费时间。

关于c - 初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13806728/

相关文章:

C 将循环中存储的整数相加

c++ - 我必须初始化简单的类成员变量吗?

C++ 在类构造函数中定义一个常量成员变量

haskell - 初始化寄存器

c++ - 在这种情况下,int** 在 C 中意味着什么?

c - 赋值使指针指向整数而没有强制转换警告

c - 如何找到谁将 sigterm 信号发送到我的进程或我的进程组?

C++宏将字符串转换为字符列表

c - 怎么理解这个C宏呢?

c++ - 将整数转换为指针总是定义良好吗?