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

2019-07-12 22:55发布

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.字符串和数组有什么不同?数组的元素可以是任意一种类型,而字符串是一种特别的数组,它使用了一种众所周知、确定长度的规则。