main() {char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char)); *s1=15;*s2=20;m=*s1+*s2; printf("%d\n",mmain(){char *s1,*s2,m;s1=s2=(char*)malloc(sizeof(char));*s1=15;*s2=20;m=*s1+*s2;printf("%d\n",m);}求输出结果及思路

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 14:23:47
main(){char*s1,*s2,m;s1=s2=(char*)malloc(sizeof(char));*s1=15;*s2=20;m=*s1+*s2;printf("%d\n",mmain()

main() {char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char)); *s1=15;*s2=20;m=*s1+*s2; printf("%d\n",mmain(){char *s1,*s2,m;s1=s2=(char*)malloc(sizeof(char));*s1=15;*s2=20;m=*s1+*s2;printf("%d\n",m);}求输出结果及思路
main() {char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char)); *s1=15;*s2=20;m=*s1+*s2; printf("%d\n",m
main()
{char *s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
求输出结果及思路

main() {char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char)); *s1=15;*s2=20;m=*s1+*s2; printf("%d\n",mmain(){char *s1,*s2,m;s1=s2=(char*)malloc(sizeof(char));*s1=15;*s2=20;m=*s1+*s2;printf("%d\n",m);}求输出结果及思路
40,s1和s2指向了同一块内存区域,第三行*s1=15;*s2=20;m=*s1+*s2;对*s1和*s2赋值是对同一块内存赋值,所以第一次赋值15第二次赋值20结果是20,两个20相加就是40.
结果通过了程序编译验证,楼主给分