C Error: comparison between pointer and integer [enabled by default]
C Error: comparison between pointer and integer [enabled by default]
我正在尝试学习一些基本的 C 代码,以增强我的一般技能。我写了一个基本脚本,告诉我一个数字是大于还是小于 10:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main()
{
int number;
printf("Enter an integer\n");
scanf("%d",&number);
printf("Integer entered by you is %d\n", number);
if ( "%d" > 10)
printf("%d is greater than 10.\n", number);
else
printf("%d is less than 10.\n", number);
return 0;
}
然而,当我编译它时,我收到一条错误消息,指出我正在尝试比较指针和整数:
dave@dave-[laptop]:~/Code/C/Examples$ gcc 004----takeandif.c -o 004----takeandif
004----takeandif.c: In function ‘main’:
004----takeandif.c:16:14: warning: comparison between pointer and integer [enabled by default]
if ( "%d" > 10)
^
当我 运行 它时,它说所有数字都小于 10:
dave@dave-[laptop]:~/Code/C/Examples$ ./004----takeandif
Enter an integer
2
Integer entered by you is 2
2 is greater than 10.
None 的其他答案适用于我的情况。我应该改变什么?
替换
if ( "%d" > 10)
有
if( number > 10 )
我很确定 %d 只是一个占位符,既然你想将 "number" 的值与 10 进行比较,你应该写 "if (number > 10)" 而不是 "if (" %d" > 10)"
我正在尝试学习一些基本的 C 代码,以增强我的一般技能。我写了一个基本脚本,告诉我一个数字是大于还是小于 10:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main()
{
int number;
printf("Enter an integer\n");
scanf("%d",&number);
printf("Integer entered by you is %d\n", number);
if ( "%d" > 10)
printf("%d is greater than 10.\n", number);
else
printf("%d is less than 10.\n", number);
return 0;
}
然而,当我编译它时,我收到一条错误消息,指出我正在尝试比较指针和整数:
dave@dave-[laptop]:~/Code/C/Examples$ gcc 004----takeandif.c -o 004----takeandif
004----takeandif.c: In function ‘main’:
004----takeandif.c:16:14: warning: comparison between pointer and integer [enabled by default]
if ( "%d" > 10)
^
当我 运行 它时,它说所有数字都小于 10:
dave@dave-[laptop]:~/Code/C/Examples$ ./004----takeandif
Enter an integer
2
Integer entered by you is 2
2 is greater than 10.
None 的其他答案适用于我的情况。我应该改变什么?
替换
if ( "%d" > 10)
有
if( number > 10 )
我很确定 %d 只是一个占位符,既然你想将 "number" 的值与 10 进行比较,你应该写 "if (number > 10)" 而不是 "if (" %d" > 10)"