C语言数组与函数问题归纳

来源:互联网 发布:lol双核优化 编辑:程序博客网 时间:2024/05/02 00:13


(一):可以使用数组后面第一个元素的地址吗?可不可以查看该地址的值?

                答:  可以使用数组后面第一个元素的地址,但不可以查看该地址中的值。

(二):为什么要小心对待数组后面那些元素的地址呢?

    答:地址分为基地址和地址偏移量,如果程序使用一段地址结构,在基地址处刚好存放着数组a0,基地址无法改变,地址偏移量也不可能是负值,所以位于a0[0]前面的元素这种说法就没有意义了。

(三):数组作为参数传递给函数时,为什么不可以通过sizeof得到数组的大小?

答:当把数组作为函数的参数时,你无法在程序运行时通过数组参数本身告诉函数该数组的大小,因为函数的数组参数相当于指向该数组第一个元素的指针。

(四):能不能将另外一个地址赋给一个数组名?为什么?

答:数组名不能被放在赋值运算符的左边。一个数组是一个对象,而它的数组名就是指向这个对象的第一个元素的指针。

(五):array_name和&array_name有什么不同?

          答:array_name是指向数组中第一个元素的指针,&array_name是指向整个数组的指针

(六):字符串和数组有什么不同?

    答:数组的元素可以是任意一种类型,而字符串是一种特别的数组,它使用了一种众所周知的,确定长度的规则。

(七):函数声明与定义是什么?

          

        答:类型标识符 函数名(形式参数表列)

  {

声明部分

语句

}

(八):形式参数和实际参数的区别?

答:函数在调用时把一些表达式作为参数传递给函数。函数定义中的参数是形式参数,函数的调用者提供给函数的参数是实际参数。

在函数调用前,实际参数的值将被复制到这些形式参数中。

(九):如何编写有多个返回值的C语言函数?

答:可以利用全局变量 ,传递数组指针,传递结构体指针来编写有多个返回值的C语言函数。

(十):如何进行参数的传递?

答:指针变量赋给形参的“值”本身是一个地址,这个地址为形参访问其所指变量创造了可靠条件,

形参可以对指针本身进行操作,也可对指针所指的变量进行操作,但这两种操作都不影响实参本身的值。

         数组名本身是一个特殊的指针变量,其值是数组的首地址,因此作为实参时其传给形参的是内存中某指定单元的地址,调用过程中形参数组与实参数组占用同一段内存单元,因此对形参数组的操作也就是对实参数组的操作,对实参数组与形参数组来说数据传递表现为“双向”的,而对实参变量与形参变量而言数据的传递仍然是单向的。




原创粉丝点击