C语言 :数组

1.数组的下标:

   C语言中数组的下标是从0开始,例如 :

Int a[Max];   Max是编译时可知的值,它的元素是从a[0]到a[Max-1];

2.数组后面第一个元素的地址是否可以使用:

   数组后面第一个元素的地址可以使用但不可以查看。例如果写如下语句:

      Int i, a[Max], j;

  i和j都有可能数组a最后一个元素后面的地址中,即可能使用了该地址;但如果直接对该地址进行操作,像将某些数据存入a[Max]中,就可能会破坏紧跟在数组a后面的数据。即使查看a[Max]的值也应该避免。

3.数组作为参数传递给函数时,能否通过sizeof得到数组的大小:

不可以,因为数组名传递的是数组首元素地址,通过sizeof得到的永远是地址存放空间的大小,例如: char a[20] = {‘a’, ‘b’, ‘c’};用sizeof(a)得到的是4。

4.如何得到数组大小:

若为char类型可以通过strlen,但这是一个特例。通常采用以下两种方法:

(1)将数组和表示数组大小的值一起传递给函数,如,char a[10];

            C(a, 10);

 (2)引入某种规则来结束一个数组。例如在C语言中字符串总是以‘\0’结束,而一个指针数组总是以空指针结束;故字符串大小可以用strlen得到;而指针数组大小可以用while(*string)循环得到。

5.指针和带下标的数组名访问元素的效果哪一种更好:

指针访问元素更高效。因为遍历数组,要确定a[i]的地址,需要将i和类型相乘后再于数组a 中的第一个元素地址相加;而用指针遍历数组只需间接引用指针。

6.是否可以把另一个地址赋给数组名:

不可以。数组名不能被放在赋值运算符的左边。

7.数组名和取地址数组名的不同:

这里以 int a[10]; 为例。a是指向数组第一个元素的地址,而&a是指向整个数组的指针。a + 1表示数组第二个元素的地址,而 &a + 1表示数组最后一个元素后的地址。a + 1是以数组的一个元素为单位进行的加法,  &a + 1是以整个数组里的所有元素为单位进行的加法。

8.const 说明的常量能否用来定义一个数组的初始大小:

不能。在C程序中,只有C语言的常量表达式才能定义一个数组的初始大小,一个初始化了的const int 变量并不是一个常量表达式。

9.字符串和数组的不同:

数组的元素可以是任意一种类型,而字符串是一种特别的数组。

10.数组名和指针:

数组名是一个指针,它指向数组的第一个元素,而指针并不是数组名,数组名可以赋给指针,但指针不能赋给数组名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值