变量的声明有两种情况
(1) 一种是分配内存空间的(声明)。例如:int a在声明的时候就已经分配了内存空间。
(2) 另一种是不需要分配内存空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。
第一种是"定义性声明",或者称为”定义",第二种是"引用性声明"。
可以理解为声明中包含着定义,但是并非所有的声明都是定义,例如:int a既是声明,同时又是定义。然而对于extern a来讲它只是声明不是定义。
定义和声明的区别
一般的情况下我们常常这样叙述,把分配内存空间的声明称之为"定义",把不需要分配内存空间称的声明之为"声明"。
初始化和赋值
给变量第一次赋值叫初始化,之后的赋值叫赋值
总结如下:
extern int a; //声明
int b; //定义
int b=1; 初始化
b=2; //赋值
//另外在定义的时候也可以初始化,也就是我们常用的写法
int c=3;
C语言不同于Java语言,在Java语言中,在一个类中,定义函数/方法后,在调用时不需要声明。在C语言中定义函数后,在使用前,需要在main函数前进行声明,否则会报错。
#include<stdio.h>
//使用函数前,需要在main函数前对使用的函数进行声明
int getMax(int, int);
void main() {
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
int getMax(int a, int b) {
if (a > b) {
return a;
}
else {
return b;
}
}
或者将函数定义在main函数的前面,则不需要声明
#include<stdio.h>
int getMax(int a, int b) {
if (a > b) {
return a;
}
else {
return b;
}
}
void main() {
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
注意:在其他函数中调用自定义的函数时,也是要在调用者前进行声明,或者定义在调用者前,否则会报错无法使用