第一句是定义一个主函数
第二句是定义字符型变量m
第三句是将B的Ascll码值66加上32赋给m,m的Ascll码值为98
第四句是将变量m以字符型输出
,Ascll码为98在Ascll字符编码表中对应字符b
故输出b
strcpy(a,"you");
//这个语句作用是将字符串"you"拷贝到以第0行的行首指针起始的存储空间,
//存储后,a[0][0]='y',a[0][1]='o',a[0][2]='u',a[0][3]='\0'
strcpy (a[1],"me");
//a[1]是二维数组的第1行的行首指针,
//这个语句作用是将字符串"me"拷贝到以第1行的行首指针起始的存储空间,
//存储后,a[1][0]='m',a[1][1]='e',a[1][2]='\0'
a[0][3]='&';
//这个语句将原先的a[0][3]='\0'又覆盖为'&'
所以最后:
a[0][0]='y',a[0][1]='o',a[0][2]='u',a[0][3]='&'
a[1][0]='m',a[1][1]='e',a[1][2]='\0'
那么将a起始地址中的数据以字符串格式输出,会输出到'\0'为止,
所以输出结果为:you&me
for(i=0;i<3;i++)
{
strcpy(x[i],ch);
}
的作用是把x[3][4]初始化成{"abc", "abc", "abc"},而
for(i=0;i<3;i++){
cout<<&x[i][i];
}
输出的其实是&x[0][0],&x[1][1],&x[2][2],&是取地址符,所以输出类型变为char的指针,而结果就是从当前地址开始,输出其后的字符,直到'\0'结束符为止,而'\0'结束符在字符串"abc"声明时,已经默认添加在末尾了,并在调用strcpy时,赋值给了x的三个二维数组(这也是为什么二维数组的元素个数是4而不是3的原因),所以你看到的结果是"abc""bc""c"
而当你去掉&符号,就变成了输出char类型数据,x[0][0],x[1][1],x[2][2],结果也就变成了'a''b''c'
一开始,s被赋值,为2
接着3次循环,
第一次,i= 0,%2求余为0做了else t= 5,a= 5,返回值8 (因为在内部调用,到了外面还是用a=3)
第二次,i= 1,a= 4,t= 4返回值8(外部a因前一次a++,所以为4)
第三次i= 2,a= 6,t= 6,返回值11(外部a因前一次a++,所以为5)[ 同理第一次使用else的时候a++了,所以不是5而是6了 ]
把三次返回值加起来,就是所输出s 29= 8+8+11+2
注意static的用法,区分局部和全局~
以上就是关于以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%c/n",m);}全部的内容,包括:以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%c/n",m);}、程序执行后的输出结果、以下程序运行后的输出结果是()等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)