gpt4 book ai didi

C 语言中可以使用 scanf() 来声明变量吗?

转载 作者:行者123 更新时间:2023-11-30 20:44:54 25 4
gpt4 key购买 nike

所以,我只有一个简单的代码。我被要求验证它会运行多少次。

int i = 0;
int s = 0;
int b = 0;
while(i < 10){
printf("Enter an integer: ");
scanf("%d" ,&x);
s += x;
if(x > b){
b = x;
}
i++;

我说过它永远不会运行,因为 x 没有被声明。有人告诉我我错了,并宣布了这一点。

我的问题是 scanf() 可以声明变量吗?或者你会说这段代码运行的唯一方式是声明 x 吗?

最佳答案

x 必须声明,您的示例是错误的,但您可以在 scanf 调用中使用复合文字:

scanf("%d" , &(int){0} ) ;    //(int){0} is a compound literal
//and its address is passed to the function

scanf 会将一个数字写入该变量,唯一的问题是您无法访问它,因为您没有它的地址。如果您有一个返回该复合文字地址的函数,则可以使用它。

关于C 语言中可以使用 scanf() 来声明变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26409684/

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