Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么我的if语句有效,而我的else语句无效';T_C_If Statement_String Literals - Fatal编程技术网

C 为什么我的if语句有效,而我的else语句无效';T

C 为什么我的if语句有效,而我的else语句无效';T,c,if-statement,string-literals,C,If Statement,String Literals,很抱歉,如果以前有人问过这个问题,或者这是一个愚蠢的问题,但是我对这个网站和C都是新手。所以,当我运行这个代码时,当我键入一个答案时,任何答案,无论是对是错,它都会说明它应该说什么 代码如下: #include <stdio.h> int main() { int x; printf("1+1="); scanf("%d", &x); if("x==2"){ printf("Watch out, we got a genius

很抱歉,如果以前有人问过这个问题,或者这是一个愚蠢的问题,但是我对这个网站和C都是新手。所以,当我运行这个代码时,当我键入一个答案时,任何答案,无论是对是错,它都会说明它应该说什么

代码如下:

#include <stdio.h>
int main()
{
    int x;
    printf("1+1=");
    scanf("%d", &x);
    if("x==2"){
        printf("Watch out, we got a genius over here!");
    }
    else {
        printf("I don't even know what to say to this...");
    }
    return 0;
}
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
如果(“x==2”){

printf(“小心,我们这里有个天才!”); } 否则{ printf(“我甚至不知道该说些什么……”); } 返回0; }
您需要

if(x==2) 
没有你需要的引号

if(x==2) 
没有引号的话,试试这个

#include <stdio.h>
int main()
{
int x;
printf("1+1=");
scanf("%d", &x);
if(x==2){
    printf("Watch out, we got a genius over here!");
}
else {
    printf("I don't even know what to say to this...");
}
return 0;
}
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
如果(x==2){

printf(“小心,我们这里有个天才!”); } 否则{ printf(“我甚至不知道该说些什么……”); } 返回0; }
试试这个

#include <stdio.h>
int main()
{
int x;
printf("1+1=");
scanf("%d", &x);
if(x==2){
    printf("Watch out, we got a genius over here!");
}
else {
    printf("I don't even know what to say to this...");
}
return 0;
}
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
如果(x==2){

printf(“小心,我们这里有个天才!”); } 否则{ printf(“我甚至不知道该说些什么……”); } 返回0; }
试试看

#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
//如果“x==2”,则修改此行{
如果(x==2){

printf(“小心,我们这里有个天才!”); } 否则{ printf(“我甚至不知道该说些什么……”); } 返回0; }
试试看

#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
//如果“x==2”,则修改此行{
如果(x==2){

printf(“小心,我们这里有个天才!”); } 否则{ printf(“我甚至不知道该说些什么……”); } 返回0; }
“x==2”
是一种类型的
常量字符*
,它位于内存中,并且有一个地址。C中实对象的地址永远不为0§因此表达式总是true,并且永远不会使用else分支


§尽管某些体系结构(最著名的嵌入式系统)可能具有空指针的非零位模式,但C要求它们比较等于零常量。请参见是一种
const char*
类型,它位于内存中,并且有一个地址。C中实对象的地址永远不为0,因此表达式总是true,并且永远不会使用else分支



§尽管某些体系结构(最著名的嵌入式系统)可能具有空指针的非零位模式,但C要求它们比较等于零常量。请参见

如果(x==2){
…“小心,我们这里有个天才!”-一个非常不幸的输出语句。欢迎使用堆栈溢出。请尽快阅读页面。写入的
if
条件测试指向字符串的指针是否为
“x==2”
是一个空指针,它不是空指针,因此
if
的计算结果总是为true。因此,正如其他人所说,您需要删除
x==2
周围的引号。此外,最好在每行输出的末尾打印一个换行。
如果(x==2){
“小心,我们这里有个天才!”-一个非常不幸的输出语句。欢迎使用堆栈溢出。请尽快阅读页面。写入的
if
条件测试指向字符串的指针是否为
“x==2”
是一个空指针,它不是空指针,因此
if
的计算结果总是为true。因此,正如其他人所说,您需要删除
x==2
周围的引号。此外,最好在每行输出的末尾打印一个换行符。也许还有更多的喘息空间:
if(x==2){
。空白是你的朋友。如果(x==2),可能会有更多的喘息空间:
{
。空白是你的朋友。