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

来源:互联网 发布:淘宝开店要2张银行卡 编辑:程序博客网 时间:2024/06/05 23:56

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

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

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页,函数的声明和函数的定义第一行基本上是相同的,只差一个分号。……函数的首行(函数首部)称为函数原型。
定义的首行,再加一个分号,就成了函数的“声明”

0 0