一、数组作为参数传递给函数时,可以通过sizeof得到数组的大小吗?
不可以,函数的数组参数相当于指向该数组第一个元素的指针。为了告诉函数数组参数的大小,可以将数组和表示数组大小的值通过memcpy函数一起传递给函数,引入某种规则来结束数组,指针数组总是以空指针结束的,可以利用循环while(*strings)或者while(strings[i]!NULL)
二、哪种遍历数组的方法更好?
遍历数组可以使用指针或者下标,也可以递增遍历或者递减遍历。使用指针递增遍历数组速度更快。
三、array_name和&array_name有什么区别?
前者是指向数组中第一个元素的指针,后者是指向整个数组的指针。
四、能否使用const说明的常量来定义一个数组的初始大小?
不能,一个初始化了的const int变量并不是一个常量表达式,在定义数组的大小时,必须使用常量表达式,比如:数字、预定义的常量标识符、sizeof表达式、由常量表达式组成的表达式、枚举常量。
五、字符串和数组有什么不同?
一个数组的长度可以是任意的,当数组名作为函数的参数时,必须引入某种规则函数才能知道数组的大小;对字符串来说,这种规则就是字符串的最后一个字符是”NUL('\0')“。在定义一个字符串变量时,容纳字符串的数组或者指针,要保证为终止符留出空间。
六、什么是形式参数,什么是实际参数?
函数定义中的参数是形式参数,函数调用者提供给函数的参数是实际参数。在函数调用之前,实际参数的值将被复制到这些形式参数中。
七、在什么情况下用结构体数组作函数参数?
结构体数组元素作为实和结构体数参组名作为实参。前者传给形参的是某些变量的值,后者传给形参的是结构体数组的首地址。
八、如何编写有多个返回值的C语言函数?
利用全局变量、传递数组指针、传递结构体指针