以下内容来自菜鸟教程,贴在此做笔记
方式 1
形式参数是一个指针:
void myFunction(int *param)
{
.
.
.
}
方式 2
形式参数是一个已定义大小的数组:
void myFunction(int param[10])
{
.
.
.
}
方式3
void myFunction(int param[])
{
.
.
.
}
①这三种方式就是数组作为参数的时候形式,在实际传递过去的时候,我们给这个参数传递的是一个指针
例如:
int balance[100]
myFunction( balance) ;
注意首地址和指针的区别:
②数组首地址为一个常量,而指针是一个变量
③数组首地址不可以作为左值(常量不可以作为左值),而指针可以
例如:
:int a[]
: a=1;是错误的
④数组名也是指针,但是为什么不能被赋值?
:数组名在表达式中表示指向首元素的指针常量,这个常量运行时才被分配到栈中,既然是常量当然不允许修改,一旦定义就不能再被赋值了。
⑤c中不支持函数返回局部变量的地址?
函数中不能返回局部变量,因为在c中这些局部变量都是存储在栈中的,随着他们的作用域的消失而消失,局部变量的指针也是局部变量。如果我们要返回一个局部变量的指针
有两种方法
一、把这个指针声明为static
二、自己为这个指针所指的内容申请空间,这样的话只要自己没有释放这个变量,这个变量在整个程序的运行过程中就会一直存在