假设我们有以下代码示例:
char *s="hello";
if(*s=='h'){
printf("OK");
}
程序将显示'OK'
,因为比较是正确的。
但是,此代码背后的逻辑是字符和地址(而不是地址的内容(之间的比较。
知道*s
等同于地址,怎么可能满足这个条件?
谢谢
不是。
*(s+0)='h' //equal than *s
*(s+1)='e'
"s"是该字符串的地址。
>s
是一个地址,但*s
是一个按地址定位的值s
。由于s
是char*
,*s
是char
。