【C语言】声明和定义的区别和联系(变量、函数)


变量的声明和定义

变量的声明

声明是用来告诉编译器变量的名称和类型,而不分配内存,声明是不赋值的。

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、目的
声明告诉编译器变量或函数的类型、名称等信息;
定义告诉编译器变量的值和函数的函数体内容。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值