c语言输出函数中为什么a[2]表示一个元素

Python012

c语言输出函数中为什么a[2]表示一个元素,第1张

如果 a 是一维数组,则语句和表达式中的 a[2] 表示数组的一个元素。数组的下标从0起算,a[2] 则是 第三个元素。

a[2] 也可以表示成指针指向的值的形式 *(a+2)。

例如:

int a[]={1,2,3,4,5}

printf("%d %d\n", a[2], *(a+2))

输出 3 3

语句中 a[1] 表示 地址 &a[1][0], a[2] 表示 地址 &a[2][0].

即二维数组a 的 第2行 元素 的 首地址 和 第3行 元素 的 首地址。

C语言a[2]=6赋值不正确。

a[1][0]=6。二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列,即放完一行之后顺次放入第二行。另一种是按列排列,即放完一列之后再顺次放入第二列。

在C语言中,二维数组是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节。

赋值语句是由赋值表达式再加上分号构成的表达式语句。

其一般形式为:变量=表达式

赋值语句的功能和特点都与赋值表达式相同。它是程序中使用最多的语句之一。

在赋值语句的使用中需要注意以下几点:

由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,

因此,下述形式

变量=(变量=表达式)

是成立的,从而形成嵌套的情形。

?