您的位置:首页 > 运维架构 > Linux

嵌入式Linux基础:数组的常见问题

2018-03-08 19:32 302 查看
1.C语言处理数组优点。
①除少数编译器出于谨慎考虑会做一些繁琐的规定外,C语言的数组下标是在一个很低的层次上处理的。
②数组和指针能非常和谐地在一起工作。
③将数组作为参数传递给函数时可以使用值传递和地址传递两种方式,前者需要完整的复制初始数组,但比较安全;后者的速度要快得多。
2.数组的下标
数组的下标总是从0开始,a[0]~a[max-1]。a[max]是一个有效地址,但该地址的值,并不在数组a中。
3.可以使用数组后面第一个元素的地址吗?
可以使用,但不可以查看该地址的值。假如你将某些数据存入a[max]中,往往会破坏原来紧跟在数组a后面的数据。
4.数组作为参数传递给函数时,可以通过sizeof得到数组的大小吗?
不可以,数组参数相当于指向该数组第一个元素的指针,你无法在程序运行时通过数组参数本身告诉函数该数组的大小。
5.指针或带下标的数组名都可以访问元素,哪一种更好。
与下标相比,使用指针能使C编译程序更轻易地产生优质代码。
6.可以把另外一个地址赋给一个数组名吗?
不可以,数组名不可以被放在赋值运算符的左边,。一个数组是一个对象,而它的数组名就是指向这个对象的第一元素的指针。
7.array_name和&array_name的区别
前者是指向数组中的第一个元素的指针,后者是指向整个数组的指针。
8.为什么用const说明的常量不能用来定义一个数组的初始大小
并不是所有的常量都可以用来定义一个数组的初始大小,在C程序中,只有C语言的常量表达式才能用来定义一个数组的初始大小。
9.字符串和数组有什么不同?
数组的元素可以是任意一种类型,而字符串是一种特别的数组,它使用了一种众所周知、确定长度的规则。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: