函数&变量_声明、定义、调用\引用

引例——在高中数学里,我们有y=f(x);f(x)=3x;

在C语言里我们有:

#include<stdio.h>
int f(int a)
{
	return 3 * a;
}
int main()
{
	int y;
	int x = 3;
	y = f(x);
	printf("%d", y);
}

下面说一下函数的 声明、定义、调用

 

声明:”我先告诉系统有这个东西,可以用“

【详见下面】声明的作用是把函数名、函数参数的个数、函数参数类型等信息通知编译系统,以便在遇到函数调用时,编译系统能正确识别函数并检查调用是否合法

1.引用性声明:(将外部已有的东西的作用域扩展到声明处、新声明东西)
2.定义性声明:(声明的同时进行定义)

定义:“之前声明过的东西具体是什么”

用(引用/调用):“变量要正确写在表达式里,函数用的时候别忘了加“()”,并且在里面填写相应的参数”

 

=============分割线===============

括号内数字对应书上章节

变量_声明(7.10)、定义(7.10)、引用(3.3.2)

见书中P214 变量的声明和定义

#include <stdio.h>
void main()
{
	//extern A; //引用性声明【不需建立存储空间】(简称声明)此处需要有别的文件中定义了A变量故注释掉了
	int a;//定义性声明【需建立存储空间】(简称定义)
	//变量的引用先略……
}

 

函数_声明(7.4)、定义(7.2)、调用(7.3)

 

#include <stdio.h>
//声明【如果定义在调用之前,则不用声明】
void test();//声明(“引用”)要加分号
int add(int);//声明只需要函数参数的类型以便于检查、而调用恰恰相反只需要变量名

void main()
{
	int a;

	test();//函数调用
	a=add(1);
	printf("a=%d\nadd(1)=%d",a,add(1));
}

void/*类型名*/ test/*函数名*/(/*可能会有形参表列*/)/*函数运算符*/   //函数的定义
{
	void print(char*);//声明【如果定义在调用之前,则不用声明】
	//函数内有声明部分,执行语句部分
	print("test函数被调用");//函数调用
}

void print(char* a)
{
	printf("%s\n\n", a);//形参实参传递过程见另一文章
}

int add(int b)
{
	return b + 1;//返回值可以理解成“一个操作的结果”并可以去赋值给别的变量
}



就用add(int)这个函数来说

定义:类型名与return的数的类型一致)函数名 (形参表列:(形参的类型、形参的名字(在函数里处理用的)))
int add(int b)  
{  
    return b + 1;  //返回值与函数参数一致
}  


*声明:函数类型函数名函数参数类型(函数参数的个数【就是有几个函数参数类型】)

int add(int);


调用:函数名函数参数来源变量的名称。形参实参“虚实结合”后,得到返回值或处理完一些东西。
a=add(1);  //将返回值传给a


声明的作用是把函数名、函数参数的个数、函数参数类型等信息通知编译系统,以便在遇到函数调用时,编译系统能正确识别函数并检查调用是否合法

第180页的这句话让我瞬间明白函数的声明和定义的区别

 

第181页,函数的声明和函数的定义第一行基本上是相同的,只差一个分号。……函数的首行(函数首部)称为函数原型。

定义的首行,再加一个分号,就成了函数的“声明”

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超自然祈祷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值