我有以下 C 程序:
#include <stdio.h>
int main()
{
char p[12], i;
for(i=0; i<12; i++)
{
scanf("%d", p+i);
}
for(i=0; i<12; i++)
{
printf("%d", *(p+i));
}
return 0;
}
这段代码无限地接受输入。这有什么问题吗?
最佳答案
您搞乱了 int
和 char
(格式说明符 %d
用于整数,而不是字符)。请引用here有关不同类型的格式说明符的更多信息。
如果你想从用户那里读取整数,你需要将代码更改为:
#include <stdio.h>
int main()
{
int p[12], i;
for(i=0; i<12; i++)
{
scanf("%d", &p[i]);
}
for(i=0; i<12; i++)
{
printf("%d", *(p+i)); // or better to use p[i] here
}
return 0;
}
关于c - 指针无限地接受输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21770354/