答案补充 不好意思 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