变量的声明和定义
变量的声明
声明是用来告诉编译器变量的名称和类型,而不分配内存,声明是不赋值的。
int i;//变量的定义
extern int i;//加一个extern关键字,这是变量的声明
extern int i=10;//给变量赋值了,这是变量的定义
变量的定义
定义是为了给变量分配内存,可以为变量初始化赋初值。
初始值:
全局变量和静态本地变量初始值为0,
本地变量(局部变量)的初始值为随机数。
变量的声明和定义的区别
变量的声明不赋值,只告诉编译器变量的名称和类型;
变量的定义可以为变量初始化赋初值。
注意:
通常变量的声明和定义是同时发生的:
int num;//声明+定义
struct point{//声明+定义
int x;
int y;
}
函数的声明和定义
函数的声明
函数的声明是通知编译器函数名称、参数数量、参数类型、函数返回类型,参数的名字可写可不写。
void swap(int a,int b);//写参数名字
void swap(int,int);//不写参数名字
//函数里面如果没有参数,可以写成:
void swap();
void swap(void);//建议写这种
函数需要在main前面声明,如果没有声明或没有声明参数类型则编译器默认猜测参数类型,如果此时参数类型不是猜测类型,编译可能不会出错,运行结果一定会出错。
#include<stdio.h>
int max(int a,int b);//函数原型是函数声明
//也可以写成int max(int,int);
int main(void){
int a=5;
int b=6;
printf("%d\n",max(a,b));
return 0;
}
int max(int a,int b)//函数定义
{
return a>b?a:b;
}
函数的定义
函数的定义是为函数分配内存,函数定义包含了函数的具体体现。
void swap(int a,int b)
{
int t=a;
a=b;
b=t;
}
函数的声明和定义的区别
函数若出现了{……}函数体,即为定义,否则为声明。
函数声明说明函数是什么;
函数定义说明函数做什么。
声明和定义的区别
1、重复次数
声明可以声明多次;
定义只能定义一次。
2、分配内存
声明不会分配内存;
定义会分配内存。
3、目的
声明告诉编译器变量或函数的类型、名称等信息;
定义告诉编译器变量的值和函数的函数体内容。