码迷,mamicode.com
首页 > 编程语言 > 详细

数组与指针

时间:2019-10-11 16:43:07      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:int   oid   print   bsp   std   运算符   表示   关系   例子   

有这样一种说法:“在C中,如果数组名后不加[],只单独写数组名,那么该名称表示指向数组初始元素的指针”。

这种说法的信息量是负的。

在语法上,数组和[]是没有关系的。

事实上,在最开始的时候,p[i]只是*(p + i)的简便写法;下标运算符[]原本只有这种用法,它和数组是没有关系的。

也就是说,数组声明中的[]和数组元素表达式中的[]意义是完全不同的。

事实上,由于a + b与b + a的意义没有改变,因此我们可以把*(p + i)写成*(i + p);同时由于p[i]是*(p + i)的简便写法,由此类推实际上它可以写成i[p]。

我们使用数组元素时通常会写成array[4]的样子,但实际上如果我们写成4[array]也是正确的。

虽然很另类,但是下面的例子是可以正确运行的:

#include <stdio.h>

int main(void)
{
    int array[5];
    int i;

    for(i = 0; i < 5; i = i + 1) {
        array[i] = i;
    }

    printf("i[array] is legitimate. 4[array] = %d\n", 4[array]);
}

数组与指针

标签:int   oid   print   bsp   std   运算符   表示   关系   例子   

原文地址:https://www.cnblogs.com/freshair_cnblog/p/11655013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!