答案补充
不好意思 s2[5]时
|||
C 负数 上面那段程序 输出的是 -1
|||
A 0
s2以多一个字节的形式显示出来 则不会产生0xCC 如果这两个变量使用8字节 而是4字节偏移填充 发现上面的0xCC并不是变量分界 经过实验 就产生了-1的结果 而s2为字符数组 它占的空间实际为6个字节 即0 它缺省的会为字符串结尾加入结尾符'/0' 结果如下:68 6865 656C 6C6C 6C6F 6F00 CCCC CCCC CC-1Press any key to continue当strcmp函数比到s1[5] s2[i]); } return 0;}将s1 s1[i] s2); for(int i=0;i<8;i++) { printf("%X %X/n" 'o'}; cout<<strcmp(s1 'l' 'l' 'e'
答案为-1.因为s1为自动分配的字符串 其后会紧接着其它的代码 在本例中 其占空间就是5个字节 以0结尾 可以编如下程序:#include "stdafx.h"#include <stdio.h>#include <iostream.h>#include "string.h"main(){ char s1[]="hello"; char s2[]={'h' 而它后面的内容是变量分界符0xCC
下列程序的运行结果是
最新推荐文章于 2021-09-21 19:46:46 发布
1515

被折叠的 条评论
为什么被折叠?



