gpt4 book ai didi

c - 警告 : format ‘%d’ expects type ‘int *’ , 但参数 2 的类型为 ‘int’

转载 作者:太空狗 更新时间:2023-10-29 16:59:17 27 4
gpt4 key购买 nike

所以我是 C 语言的新手,对这个警告发生的事情有疑问。警告是什么意思,我该如何解决。我写的代码在这里:

void main(void)
{
char* name = "";
int age = 0;
printf("input your name\n");
scanf("%s\n", name);
printf("input your age\n");
scanf("%d\n", age);
printf("%s %d\n", name, age);

}

最佳答案

scanf函数采用变量的地址 将结果放入。
写作 scanf("%d", <b><i>&</i></b>someVar)将传递 someVar地址变量(使用 & 一元运算符)。
scanf函数会将一个数字放入该地址的内存中。 (其中包含您的变量)

当你写 scanf("%d", age) ,您传递了 age变量为 scanf .它会尝试将一个数字放入地址 0 的内存中。 (因为 age0 ),然后搞得一团糟。

您需要通过 &agescanf .

你还需要为scanf分配内存将字符串读入 name :

char name[100];
scanf("%99s\n", name);

关于c - 警告 : format ‘%d’ expects type ‘int *’ , 但参数 2 的类型为 ‘int’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4751455/

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