在C语言中声明和定义的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言中声明和定义的区别?相关的知识,希望对你有一定的参考价值。

在C语言中,声明变量和定义变量有什么区别?谢谢!

声明和定义的区别是

声明不为变量分配空间,而定义为变量分配空间

因此同一个变量的声明可以出现多次,而只能定义一次。

看到很多人乱回答我很气愤!
参考技术A 声明就是说明一个变量的名称,定义是要给变量赋值的。
int a; //声明
int a=10; //定义
参考技术B 声明变量就是说明一个变量,它的类型,名字等
而定义一个变量则还要对它进行初始化。
参考技术C 声明变量 只是在符号表里添加一个名字
定义变量 会分配内存
参考技术D 声明变量一般是全局函数里面的变量,而定义变量可以是全局变量,也可以是局部变量.

C语言结构体中struct和typedef struct有啥区别?

C语言结构体中struct和typedef struct区别为:声明不同、访问不同、重新定义不同。

一、声明不同

1、struct:struct可以直接使用结构体名字声明结构体。

2、typedef struct:typedef struct的为。修饰结构体,结构体有了别名,通过结构体别名声明结构体。

二、访问不同

1、struct:struct定义的结构体变量,可直接访问结构体成员。

2、typedef struct:typedef struct定义的结构体变量,不可直接访问结构体成员,必须显式的通过结构体变量来访问成员。

三、重新定义不同

1、struct:想重新定义struct结构体的话,必须重写整个结构体。

2、typedef struct:想重新定义typedef struct结构体的话,可以通过别名来继承结构体进行重新定义。

参考技术A struct是结构体的关键字,用来声明结构体变量如 struct student char num[10]; char name[20]; int age; ; typedef是用来定义新的类型名来代替已有的类型名, 可将上面的结构体定义为 typedef struct student char num[10]; char name[20]; int age; stud; 也就是说,将原来的struct student 重新定义为 stud; 举个例子 如上面的方法定义了结构体student时,如果在主函数中声明结构体变量时,应按如下方法 struct student stu[10];这样就声明了一个结构体数组, 如果开始定义时用typedef,那么就可以直接用 stud stu[10]来声明, 这就他们的区别本回答被提问者采纳 参考技术B 区别如下:
struct是结构体的关键字,用来声明结构体变量如
struct
student

char num[10];
char
name[20];
int
age;
;
typedef是用来定义新的类型名来代替已有的类型名,
可将上面的结构体定义为
typedef
struct
student

char num[10];
char
name[20];
int
age;
stud。
也就是说,将原来的struct
student
重新定义为
stud。举个例子,如上面的方法定义了结构体student时,如果在主函数中声明结构体变量时,应按如下方法
struct
student
stu[10];这样就声明了一个结构体数组,
如果开始定义时用typedef,那么就可以直接用
stud
stu[10]来声明。
结构数组就是具有相同结构类型的变量集合。假如要定义一个班级40个同学 的姓名、性别、年龄和住址,
可以定义成一个结构数组。需要指出的是结构数组成员的访问是以数组元素为结构变量的,
其形式为: 结构数组元素、成员名

扩展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
参考资料:百度百科-c语言
参考技术C typedef可以定义一个新类型
以后定义struct变量就不用再加struct了

以上是关于在C语言中声明和定义的区别?的主要内容,如果未能解决你的问题,请参考以下文章

请问C语言中函数定义,函数声明和函数调用的区别?

c语言中函数定义和声明有啥区别

C语言 函数定义 函数声明 区别

C语言结构体中struct和typedef struct有啥区别?

C语言中在一个函数中可以声明另一个函数吗(不是定义)?在main里面声明也可以吗?

C语言结构体定义