#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程序代码的错误之处,并修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)