"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;
}
打印结果: