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/08/02 17:38:06
![main() {char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char)); *s1=15;*s2=20;m=*s1+*s2; printf(](/uploads/image/z/3975728-32-8.jpg?t=main%28%29+%7Bchar+%2As1%2C%2As2%2Cm%3B+s1%3Ds2%3D%28char%2A%29malloc%28sizeof%28char%29%29%3B+%2As1%3D15%3B%2As2%3D20%3Bm%3D%2As1%2B%2As2%3B+printf%28%22%25d%5Cn%22%2Cmmain%28%29%7Bchar+%2As1%2C%2As2%2Cm%3Bs1%3Ds2%3D%28char%2A%29malloc%28sizeof%28char%29%29%3B%2As1%3D15%3B%2As2%3D20%3Bm%3D%2As1%2B%2As2%3Bprintf%28%22%25d%5Cn%22%2Cm%29%3B%7D%E6%B1%82%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%E5%8F%8A%E6%80%9D%E8%B7%AF)
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.
结果通过了程序编译验证,楼主给分