1.c语言里数组与指针。
答:数组名就是数组在内存存放的数组首元素地址。指针变量也可以放数组的首地址数组元素的地址。指针变量可以指向数组或数组元素。指针与数组能够非常和谐的一起工作。
2.为什么在c语言程序中有时要用到&a[MAX]?
答:人们习惯通过指针遍历一个数组中的所有元素,
例如 for(p=a;p<&a[MAX];++p)
{
/*do something*/
}
3.数组作为参数传递给函数时,可以通过sizeof得到数组的大小吗?
答:不可以。当把数组作为函数的参数是,函数的数组参数相当于指向该数组的第一个元素的指针。
为了告诉函数数组参数的大小,人们通常采用两种方法。一,将数组和表示数组大小的值一起传递给函数。二,引入某种规则结束一个数组,比如while函数的判断。
4.怎样把数组作为参数传递给函数?
答:在把数组作为参数传递给函数时,有值传递(by value)和地址传递(by reference)两种方式。
在有值传递方式中,在说明和定义函数时,要在数组参数的尾部加上一对方括号([]),调用函数时只需将数组的地址(即数组名)传递给函数。
在地址传递方式中,传递给函数的是指向初始数组的指针,不用复制初始数组,因此程序变得精练和高效,并且也节省了栈中的内存空间。在地址传递方式中,只需在函数原型中将函数的参数说明为指向数组元素数据类型的一个指针。
5.参数传递的参数种类有哪些?
答:包括3大类;常量,变量,表达式。
常量又包括:单变量,数组元素,数组名,指针变量等。。。
6.指针变量或数组名做函数参数的特点?
答:行程进行的操作可以分为两类;
一,对指针本身进行操作;
二,是抽屉里面的内容进行一些操作,就是对指针所指的变量进行操作。
两种操作都不可能影响实参的值却可能改变实参所指向变量的值。
7.如何编写一个多返回值的C语言函数?
答:一,利用全局变量,我们可以考虑把返回的多个值定义成全局变量。当函数被调用时,全局变量被更改,我们再把更改的全局变量值应用于主调函数中。函数调用后被更改后的全局变量值为函数的数个返回值。
二,可以通过传递数组指针。
三,当返回值有多个类型时,可以运用传递结构体指针。
8.指针数组和数组指针的区别?
答:数组指针:指向数组的指针,是一个指针,其指向的类型是数组;
指针数组:元素为指针的数组,是一个数组,其中的元素为指针。
9.什么是回调函数?
答:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
10.何时用到回调函数?
答:如果所编写的函数必须能够在不同的时刻执行不同的类型的工作或者执行自能由函数调用者定义的工作,都可以用回调函数。