当前位置: 首页 > news >正文

个人主题网站7块钱建购物网站

个人主题网站,7块钱建购物网站,小说网站建设模板,网站开发及应用目录 1. 原型句法 2. 函数分类 3. 函数参数之按值传递 4. 数组作为函数参数 在C中,要使用函数,必须要有这三个方面: 函数原型,函数原型描述了函数到编译器的接口,函数原型一般放在include文件中。函数原型告诉编译…

目录

1. 原型句法

2. 函数分类

3. 函数参数之按值传递

4. 数组作为函数参数


在C++中,要使用函数,必须要有这三个方面:

  1. 函数原型,函数原型描述了函数到编译器的接口,函数原型一般放在include文件中。函数原型告诉编译器需要提供什么样的形参,如果程序没有提供这样的形参,原型将让编译器能够捕获这种错误。
  2. 函数定义。
  3. 调用函数,函数调用是一个语句。

可能很多初学者会问,有了函数定义为什么需要函数原型?

C++允许一个程序放在多个文件中单独编译,然后再将它们组合起来。在这种情况下,编译器在编译main()函数时,可能无法访问函数定义的代码。

总的来说,函数原型有3个作用:

  1. 使编译器能正确处理函数返回值;
  2. 使编译器能检查使用的参数数目是否正确;
  3. 使编译器能检查使用的参数类型是否正确;

避免使用函数原型的唯一方法是在main()函数之前定义它。但C++的编程风格是将main()函数放在最前面,因为它通常提供了程序的整体风格。

1. 原型句法

  • 原型句法是一条语句,因此必须以分号结束;
  • 获得原型最简单的方法是复制函数定义中的函数头,并添加分号;
  • 函数原型不要求提供变量名,有类型列表即可。参数列表可以包括变量名,也可以不包括变量名,原型中的变量名相当于占位符,不必与函数定义中的变量名相同。在函数定义中形参变量名一般用_a, _b, _c形式的命名方式。

C++占位符相关知识:

(1)auto:在C++11及以后,auto可以为类型占位符,由编译器推导类型。如:

auto x=2; //x被推导为int类型

(2)格式化输出时,占位符用于指定变量插入的位置和格式,如:

printf("Number: %d, string: %s", 2, "hello");

2. 函数分类

函数分为两类:

  • 没有返回值的函数,称为void函数,通用格式为:
void functionName(paralist)
{statements;return;//optional
}
  • 有返回值的函数,通用格式为:
typeName functionName(paralist)
{statements;return value;//optional
}

对于有返回值的函数,必须使用返回语句,以便将返回值传递给调用函数。C++对于返回值的类型有一定的限制,不能是数组,但可以是其他任何类型——整型,浮点型,指针,甚至可以是结构体和对象。(虽然C++不能直接返回数组,但可以将数组作为结构体或对象的组成部分来返回)

返回语句也可以是一个表达式。

3. 函数参数之按值传递

按值传递的函数参数,形参使用的是实参数据的拷贝,在函数中改变形参的值不会改变实参的值。

在函数中声明的变量(包括形参)都是该函数私有的。在函数被调用时,计算机将为这些变量分配内存,函数调用结束后,这些变量所占用的内存被释放,这样的变量被称为局部变量,因为它们被限制在函数中,也被称为自动变量,因为它们的内存在程序执行过程中自动分配和自动释放的,不需要人为干预。

4. 数组作为函数参数

将数据作为函数参数时,需要将数组的大小一并传递,因为数组名只代表了数组的首地址,如果不传递数组长度,函数就无法数组的长度。以下实例可以更好的了解数组作为函数参数时为何一定要把长度也传递给函数。

#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int sum_arr(int arr[], int n);
int main()
{int cookies[6] = { 1,2,4,6,8,10 };cout << "size of cookers: " << sizeof(cookies) << endl;cout << "size of cookers[0]: " << sizeof(cookies[0]) << endl;cout << "size of &cookers[0]: " << sizeof(&cookies[0]) << endl;int sum = sum_arr(cookies, 6);cout << "sum: " << sum << endl;return 0;
}int sum_arr(int arr[], int n)
{int total = 0;cout << "size of arr: " << sizeof(arr) << endl;for (int i = 0; i < n; i++){total = total + arr[i];}return total;
}

以下为输出结果,cookies=24表示数组所占的字节数为24,cookies[0]=4表示第一个元素所占的字节数为4,因为数组总共有6个元素,所以没有问题。 &cookies[0]表示的是数组的首地址,大小为8个字节,传递给函数时使用的是数组名,在函数中输出arr的大小也是8个字节,说明数组名作为函数参数时只传递数组的地址(首地址),不会传递整个数组所有的元素值。

 将实例代码中的函数调用换成如下参数:

int sum = sum_arr(cookies+2, 3);

表示传递的是数组第3个元素的地址,并且设置了数组的长度为3,即只求第3,4,5三个元素的和,所以结果应该是18,程序运行结果如下:

 

http://www.dtcms.com/a/543674.html

相关文章:

  • 深圳网站建设 信科网络佛山百度关键词推广
  • xml网站模板深圳外贸公司名单
  • 怎么在网站上面做悬浮广告百度网站怎么提升排名
  • cms网站群电脑版h5制作软件
  • 哪里 教做网站带维护wordpress 图片自述
  • 宁波网站设计相信荣胜网络微信小程序公司
  • 网站制作服务网络空间购买
  • 漂亮的网站单页织梦网站描述
  • 如何查看网站做没做竞价莆田做网站的公司
  • 郑州区块链数字钱包网站开发公司档案馆网站机房建设
  • 沈阳网站设计定制wordpress 钩子列表
  • 网站备案安全吗石家庄网络推广
  • 网站的转化率电影免费在线观看
  • php网站做多久关键词筛选
  • 可以做微信推送的网站临淄区住房和城乡建设局网站
  • 网站建设销售工作怎么样wordpress模班之家
  • 一个网站应该怎么做有经验的中山网站建设
  • 泰兴市住房和建设局网站自动写作文网站
  • 做go kegg的在线网站it人力外包服务公司
  • 帝国cms网站搬家怎么判断网站开发语言
  • 网站建设的相关新闻南昌seo快速排名
  • 怎么把网站建设推广出去中国建筑网官网企业文化
  • godaddy做网站深圳微信公众平台
  • 如何做好网站关键词布局免费搭建个人网页
  • 学习制作网页的网站网站做图分辨率是多少
  • 如何做网站怎么赚钱免费网站空间和域名
  • 自己能自学网站建设吗网络服务提供者发现未成年秘密信息应采取
  • 陕西做网站公司哪家好建网站需求
  • jsp网站搭建电商设计师岗位职责
  • 网站模板设计教程360排名检测