printf("%d%d\n",strlen(p),sstrlen(q));为什么我在资料上看的答案是3.3,而我在用VC上运行的时候结果是7.3;请各位师兄师姐们教教小弟,小弟在此拜谢了。。。。。。。。。。
我有运行的结果是15 3,知道为什么吗?因为strlen是用来计算字符串长度的,也就是说读到 '\0' 才计算长度,由于 p[] 的长度是未知的,因此strlen出来的结果也是未知的,而 q[] 在最后自动帮你补了个 '\0',因此读出来是3
(gdb) x/32b &p0x7fffc6eef5d0: 0x61 0x62 0x63 0xc6 0xff 0x7f 0x00 0x00我在linux上运行结果是6,gdb查看栈内容发现 莫名其妙的出现了:0xc6 0xff 0x7f 估计,一,和操作系统有关,二,和编译器有关。如果是考试,建议你按照资料上的答案来考,毕竟,批卷子的人的答案是死的。