假设我有以下代码:
int number;
scanf("%d", number);
printf("%d", number);
我输入一个数字,比如 10,作为输入,但我没有得到它来打印任何东西。如果我更改我的代码,以便它将输入扫描为字符串,它可以正常工作:
char number[2];
scanf("%s", number);
printf("%s", number);
我做错了什么吗?如果是这样,怎么办?我正在做我所有的工作 https://www.onlinegdb.com/online_c_compiler 如果这改变了什么
你需要将number
的地址传递给scanf
:scanf("%d", &number);
当你使用字符串时它之所以有效,是因为 c 中的字符串实际上只是一个指向char
的指针,printf
知道,对于字符串,它需要取消引用指针才能到达字符串的chars
。