在不同编译器结果不同,那正确结果应该是什么

strcmp(p0,p1)是0还是-1?正确结果应该是什么,怎么得出来的

img

img

strcmp(p0,p1) 结果就是0,两个字符串相等。
strcmp(p0,p2) 结果不确定,0或-1都有可能。
原因:strcmp函数比较字符串,只有在碰到'\0'才结束,p0和p1后面都有'\0',而p2总大小才11个字节,没有多余的字节存放'\0',所以函数比较结果不确定。
解决办法:
1、把p2定义大一点,比如12,并且字符串之后需要添加上'\0'
2、用strncmp函数,strncmp(p0, p2, 11); 指定字符串比较的长度