假设我有以下代码:
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做所有工作
答案 0 :(得分:2)
您需要将number
的地址传递给scanf
:scanf("%d", &number);
使用字符串时它起作用的原因是因为c中的字符串实际上只是指向char
的指针,而printf
知道,对于字符串,它需要取消引用。指向字符串chars
的指针。