gpt4 book ai didi

C printf 打印随机数

转载 作者:行者123 更新时间:2023-11-30 20:43:55 27 4
gpt4 key购买 nike

我对 C 编程非常陌生,并且有一个疑问...有人要求我查找 C 代码某些段中的错误...这一段让我有点困惑,所以非常感谢您的帮助...

int main(void)     
{
int myInt = 5;
printf("myInt = %d");
return 0;
}

据我了解,这段代码没有任何问题。我想知道的是为什么这个语句打印出一个随机数??

我得到的输出是

myInt = 1252057154

非常感谢您的帮助...谢谢

最佳答案

您应该阅读更多有关C编程的内容。

并且您应该在编译时启用所有警告和调试。对于 GCC,这意味着 gcc -Wall -Wextra -g(至少在 Linux 上)。

编译时

gcc -Wall -Wextra -g john.c -o john

我收到以下警告:

john.c: In function ‘main’:
john.c:4:5: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-declaration]
john.c:4:5: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
john.c:4:5: warning: format ‘%d’ expects a matching ‘int’ argument [-Wformat]
john.c:3:9: warning: unused variable ‘myInt’ [-Wunused-variable]

所以更正很简单:

/* file john.c */
#include <stdio.h>
int main(void)
{
int myInt = 5;
printf("myInt = %d\n", myInt);
return 0;
}

编译时不会出现警告。

请注意 printf 格式字符串末尾的 \n。这很重要。

始终启用编译器可以向您提供的所有警告并信任编译器,因此请更正您的代码,直到不再发出警告为止。

学习使用调试器(例如 Linux 上的 gdb)。

您观察到的行为是未定义的行为任何事情都可能发生在C符合标准的实现上(甚至是爆炸)。

黑客快乐。

关于C printf 打印随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9684880/

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