中括号的含义昨天提问题,发现中括号好象有很多含意int *arr = new int[2];arr[0] = 2;//这时候[]可以当*使用吗?q["123"+2] = 3;2["123"] = 3;*("123"+2) = 3;这三句怎么理解呢?字符串的转译是怎么样的呢?
问题描述:
中括号的含义
昨天提问题,发现中括号好象有很多含意
int *arr = new int[2];
arr[0] = 2;//这时候[]可以当*使用吗?
q["123"+2] = 3;
2["123"] = 3;
*("123"+2) = 3;
这三句怎么理解呢?
字符串的转译是怎么样的呢?
答
a[b]总是会被编译器转译为*(a+b),所以a[2]与2[a]其实是完全相同的.所以arr[0]就是*arr.不过后面的三个例子有点诡异,"123"是常量,是不能修改其内容的.但可以看下面的例子帮助理char a[] = "123";*(a+1) = '3';//1[a] ...