请同学们看下面的代码。程序运行的结果是()

请同学们看下面的代码。程序运行的结果是(),第1张

#include<stdioh> 

int main(){

    int a=1,b=2,c=3,d=0;    

    if(a==1 &&b++==2)    //a=1,b=2,c=3,d=0(b++先判断再自加,所以这里是true)

        if(b!=2||c--!=3)    //a=1,b=3,c=3,d=0(这里涉及到或运算的短路特性,当前一个条件为真,不再判断后一个条件,所以c--没有执行)

            printf("%d,%d,%d\n",a,b,c);    //a=1,b=3,c=3,d=0 输出即为1,3,3,故选c

        else

            printf("%d,%d,%d\n",a,b,c);

    else

        printf("%d,%d,%d\n",a,b,c);

    return0;

}

那是因为char str1[100],str2[100]时候里面并没有对此数组进行初始化,导致里面的值不确定。于是str1[n]得值并非等于'\0',于是str1,str2的长度就不为n(比n长)。

最好要先初始化:char str1[100]={'\0'},str2[100]={'\0'};,这就不会出问题了。

另外,你不进行初始化,会有一个潜在的严重问题,就是如果str1,str2从索引n后到数组的末尾都没有一个'\0',那么strcmp对数组的访问就会越界,C语言不会检查数组越界(事实上strcmp根本不知道数组长度是多少,只知道到'\0'结束),就有可能触发内存读写错误(strcmp还好,只读不写,触发错误的可能性小,但像strcpy就可能很严重,如果要使用strcpy,用strcpy_s代替),使你写的程序崩溃终止。

long[] a不是静态变量,不能被静态方法所引用

修改方法一:在long[] a 前面增加 static;

修改方法二:将long[] a=new long[10]; 整句移入main方法里面;

修改方法三:main方法里面不要引用a[];

$(document)click

$("input[type='button']")

$("div")toggle()

<div>科技</div>

<input type="button" value="切换状态"/>

这个程序的主要逻辑是,看注释:

#include<stdioh>

int fun(int p)

{

int s=10;

s=s+p;//指针p地址对应的a + 10,此时a即输入的值

return(s);

}

int main()

{

int i,a,b,p;

for(i=0;i<3;i++)

{

p=&a;//指针p指向整型变量a

scanf("%d",p);//输入数字,赋值给指针p指向的地址,即a

b=fun(p);//把指针p即a的地址传给fun函数

printf("b=%d\n",b);

}

return 0;

}

以上就是关于请同学们看下面的代码。程序运行的结果是()全部的内容,包括:请同学们看下面的代码。程序运行的结果是()、下边程序代码求改错:题目是判断是否回文,如xyzzyx和xyzyx都是回文、请查找下面Java程序代码的错误之处,并修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10144139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存