<C++ Primer >学习笔记 第六章 函数(上)

函数基础

函数定义
函数定义包含以下几个部分:返回类型、函数名字、形参列表和函数体。

int fact(int val)
{
   
}

列举一个简单的空函数,fact是函数名,fact前面的int是返回类型,val是形参,val前的int是接受的实参类型,花括号中的是函数体。
形参列表可以是空的,但是不能被省略,如果是省略形参可以用void或者直接为空

int fact(void)
{
   
}
或者
int fact()
{
   
}

多个形参可以使用逗号隔开,每个形参前都必须标有类型,任意两个形参不能同名。
实参是形参的初始值,与形参一一对应,无论是类型还是数量都必须对应。
6.3 用户输入一个数,计算这个数的阶乘

#include<iostream> 
#include<string>
using namespace std;

int fact(int a);
int main()
{
   
	int i;
	cin>>i;
	int j=fact(i);
	cout<<"j"<<"的阶乘为"<<j<<endl; 
}
int fact(int a)
{
   
	int ret=1;
	while(a>0)
	{
   
		ret*=a--;
	}
	return ret;
}

局部对象
每一个对象都有生命周期,定义在函数体外的变量,存在于整个程序执行的过程中,在函数开始时被创建,函数结束时消失。每个变量的生命周期的长短取决于它们的定义方式。对于普通局部变量对象来说,当函数路径经过定义语句时创建,当到达定义语句所在块末尾时销毁。某些时候需要局部变量的生命周期贯穿始末的时候需要使用static将普通的局部变量,变成局部静态变量。
6.6、6.7编写一个函数,使用到形参、局部变量和局部静态变量,函数的内容是第一次返回0,之后每一次返回变量加一

#include<iostream> 
#include<string>
using namespace std;
int add()
{
   
   static int a=1;
   int b=1;
	a=a+1;
	b=b+1;
	cout<<"a"<<a<<" ";
	cout<<"b"<<b<<" ";
	return 0;
}
main()
{
   
	int b,i;

	for(i=0;i<10;i++)
	{
   
		cout<<"这是第"<<i<<"次调用的结果"<<" ";
		add();
		cout<<endl;
	}
}

结果如图
在这里插入图片描述
函数声明与分离式编译
函数只能定义一次,但是可以声明很多次。函数的声明和定义几乎一样,只是函数声明没有实体,用一个封号代替就可以了,也可以不写形参的名字。一般把函数声明放在头文件中。
6.8、6.9 编写一个项目 fact.cc,factmain.cc和fact.h

fact.h
#ifndef CHAPTER_H_INCLUDE
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值