C语言结构体易混淆概念辨析

C语言结构体易混淆概念辨析

1.结构体是什么?

用户自定义类型

#include <stdio.h>

//最简单的结构体  
struct INT
{
	int a;
	long b;
};//自己建立的数据类型     类型叫 struct INT

int main() {
	//INT      dcf;   //为啥报错? 系统没有INT类型 
	struct INT dcf1;  //定义struct INT类型的变量dcf1	
	int        dcf2;  //定义int       类型的变量dcf2
}

2.在声明结构体的同时定义变量(简写版本)

#include <stdio.h>

//最简单的结构体 精简版 
struct INT
{
	int a;
	long b;
}dcf1;//dcf1是啥?是struct INT类型的变量名dcf1	 

int main() {
	struct INT ddd2;//还想定一个新变量时候,可以这样添加  见表格2
	//struct INT dcf1;//这样太长太麻烦 
	
}

3.用typedef简化类型名

#include <stdio.h>

//最简单的结构体 精简版 
typedef struct INT
{
	int a;
	long b;
}Int;//Int是啥?是struct INT类型的另一个名字Int类型
//	 struct INT == Int 

int main() {
	
	//struct INT dcf1;//类型太长太麻烦用typedef 
	Int dcf1; //有两种定义变量的方法
}

4.用typedef简化类型名时原来名字可以省略

#include <stdio.h>

//最简单的结构体 精简版 
typedef struct 
{
	int a;
	long b;
}Int;//Int是啥?是自己定义的Int类型

int main() {

	Int dcf1; //只有这一种定义变量的方法 
}

5.没名结构体

#include <stdio.h>

//没名结构体 
struct 
{
	int a;
	long b;
}dcf1;

int main() {
     
	//没名结构体不能直接定义变量
	//只能在声明结构体时定义变量 
	//如果还想添加新变量,只能在dcf1后边写"dcf2......."
}
类别原类型新类型名字定义变量方式
1struct INTxstruct INT dcf1
2struct INTx声明时定义(还可以用例子中主函数写的)
3struct INTIntInt dcf1 或 struct INT dcf1
4无名结构体类型Int只能 Int dcf1
5无名结构体类型x只能声明时定义

总结:声明时定义就不能用typedef,

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值