最近笔试就遇到下面这道题,谁都不敢说自己的C/C++能有多精通,当然,工作一久,很多老毛病也就容易犯了,所以说,理论是真的很重要的,下面这道题,说实话还是挺基础的,虽然当时笔试被我给猜对了,但还是要深究一下具体的转换细节。程序正确运行结果如下:我当时一看,数组下标还有负值?看上面这幅图即可得到结果,其实就是这么一个转换关系:实际上编译系统将数组元素的形式a[i]转换成*(a+i),然后才进行运算。对于一般数组元素的形式: [] 编译程序将其转换成:*,其中下标表达式为:下标表达式*扩大因子。由此可见,C语言对数组的处理,实际上是转换成指针地址的运算。温故而知新,注重基础,一点细节也不要放过!

C语言数组和指针的问题一道非常值得深思的笔试题

C语言数组和指针的问题一道非常值得深思的笔试题