Old*_*ool 6 c string-literals
如果我们说:
char *p="name";
那我们该怎么办呢
if(p=="name"){ printf("able"};//this if condition is true but why?
因为"name"这里是一个字符串文字,并且p是一个保存字符串基址的指针,那么为什么上述语句工作正常?
p
Sha*_*our 7
未指定的行为是否可以认为相同的字符串文字相同,因此具有相同的地址.所以这不是可移植的行为.从草案C99标准部分6.4.5 字符串文字:
6.4.5
如果这些数组的元素具有适当的值,则这些数组是否不同是未指定的.[...]
如果你想比较两个字符串,你应该使用strcmp.
归档时间:
11 年,11 月 前
查看次数:
134 次
最近记录:
11 年,10 月 前