"abc" + 1
這個表達式是什麼意思呢?
我的第一反應是WTF,字符串常量還能加減嗎?但是細思下發現字符串常量實際上是個指針,指針指向的是字符串常量的第一個字符,所以+1完全是可以的,這時指向的是字符串常量的第2個值,當然加減整數都不能超過字符串的長度,"abc" + 4是錯誤的。
#include<stdio.h>
int main(void)
{
printf("%c\n",*("abc"));
printf("%c\n",*("abc" + 1));
printf("%c\n","abc"[2]);
return 0;
}
打印結果: