C++学习(八)函数基础

1.函数是C++的编程模块。要使用函数,必须提供定义和原型,并调用该函数。函数定义是实现函数功能的代码;函数原型描述了函数的借口:传递给函数的值的数目和种类以及函数的返回类型。函数调用使得程序将参数传递给函数,并执行函数代码。

2.函数的值传递,是通过C++的拷贝机制,形参是新变量,形参是实参的拷贝,这种形式保护了原始数据的完整性。

3.C++将数组名参数视为函数首元素的地址。从技术上讲,这仍然是按值传递的,因为指针是原始地址的拷贝,但函数将是偶那个指针来访问原始数组的内容。当且仅当声明函数的形参时,TypeName arr[]和TypeName* arr才是等价的。

4.C++提供了3中便是C-Style字符串的方法:字符数组、字符串常量和字符串指针。它们的类型都是char*(char指针),因此被作为char* 类型参数传递给函数。

5.C++提供string类表示字符串,string对象既可以作为函数参数传入,也可以作为函数返回值返回,使用size()方法可以知道string对象的长度

6.C++处理结构和基本类型一样,按值传递。如果结构比较大,可以用结构指针作为函数参数,这样效率会非常高。

7.理解二维数组作为函数参数进行传递,理解指向指针的指针

二维数组作为参数传递,两种声明方式:
int sum(int (*arr)[4], int size);//arr是指针,不是数组。arr是数组指针,指向包含4个int型元素的数组
int sum(int arr[][4],int size);
上面的声明方式,只需要指定列数,行数作为另一个参数进行传递

ar2[r][c] == *(*(ar2+r) + c)
ar2//指向二维数组第一行的数组指针(一维数组的指针),ar2也是指向指针的指针
ar2+r//指向第r行的数组指针
*(ar2+r)//第r行的一维数组,同时也是第r行一维数组的指针(首元素地址)
*(ar2+r)+c//第r行的一维数组的第c个元素地址
*(*(ar2+r)+c)//ar2[r][c]的值

8.函数指针:函数的地址是存储其机器语言代码内存的开始地址。
获取函数的地址:使用函数名就可以获得函数的地址。
声明函数指针:声明指向函数的指针时,必须声明指定指针指向的函数类型。
double pam(int);
double (*pf)(int);
调用函数时,double y = (*pf)(5)或者double y = pf(5)都可以。
第一种:*pf是函数,采用函数的调用方式。
第二种:函数名就是指向函数的指针,指向函数的指针的行为应与函数名相似。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值