C语言指针与数组

徘徊边缘 提交于 2019-12-01 15:30:38

C语言数组下标[]符号竟是个语法糖?

123456789101112131415
struct  {    int a[100];    int b[100];};int大专栏  C语言指针与数组> main() {    struct  ins;    int i = 0;    for(; i<200; i++) {        ins.a[i] = 1;    }    return 0;}

问:上述程序在运行时是否会产生数组越限?

答:不会。

《C程序设计语言》(第2版·新版)P84写到:
对数组元素a[i]的引用也可以写成(a+i)这种形式,在计算数组元素a[i]的值时,C语言实际上先将其转换为(a+i)的形式,然后再进行求值。

如果你没注意到此特性,将有可能导致灾难。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!