函数基础相关细节

1.调用需要输入数组的函数时,实际上没有把数组内容进行调用,而是将数组位置,种类数目提交给了函数,这意味着在函数中对数组进行操作,就是对原数组进行操作。这与传递常规变量不同,传递常规变量是拷贝。

防止函数修改数字,在声明形参时使用关键字const,意味着可以用该值,但不能修改,即只读数据。

2.函数原型可以省略变量名

3.指针和const
①指针指向常量对象:

int a=1;
const int * p=&a;//p指向const int

不能用指针p来修改值,但是a不是常量,可以用a来修改值

const int a=1;//const量
const int * p=&a;//p指向const int

不能用指针p来修改值,也不能用a来修改值。可以将新地址赋给p,但是新地址的值依旧不允许修改。

注意:不能将const地址赋给常规指针,意味着不能将数组名传递给使用非常量形参的函数

const int a=1;//const量
int * const p=&a;//固定指针,p只能指向a,但是允许通过p修改a

4.函数和二维数组

将二维数组作为函数的参数

int sum(int arr[][4],int size);//函数声明

int a[3][4]={{1,2,3,4},{2,3,4,5},{3,4,5,6}};
int total=sum(a,3);

首先函数参数不能为数组,所以必然是地址,a数组是二维的,三个含有四个int值的数组。arr是指针不是数组,该指针规定了列数。

5.函数和结构
结构将其数据组合成单个实体,该实体被视为一个整体。故可以按基本类型那样处理结构,但会引发一个问题:如果结构非常大,复制结构会导致降低速度。结构比较小时,按值传递最合理

要传递结构的地址而不是整个结构以节省空间和时间,需要重新编写前面的函数,使用指向结构的指针。需要修改三个地方
①调用函数时将结构地址传递给它
②形参声明为指针,使用const修饰符
③由于形参是指针,所以用间接成员运算符(->)而不是成员运算符(.)

6.对于函数返回值类型不能是数组,其他都行,甚至是结构,所以可以将数组作为结构返回

7.函数参数为形参而非实参,所以函数里的变量名就算和main函数内的变量名一样,也不是同样的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值