
结构体类型名、结构体变量名怎么区分
A.PER 是结构体变量名 B.PER是结构体类型名C.typedef struct 是结构体类型 D.struct 是结构体类型名
(PER在这里是什么来的???) 展开
关键字 struct 就代表是一个结构体类型。
PER就是就是这个结构体类型的名称。
PER per ; per就是定义好的结构体变量。
12345678910111213141516171819202122typedef struct PER{ int n; char ch[8];}PER;一般这样定义结构体类型 定义变量的时候可以 struct PER per; 或者 直接 PER per; 而用你写的定义方法只能用 PER per 定义变量 如果这样写struct PER{ int n; char ch[8];}; 只能用 struct PER per 的方式定义变量。
扩展资料:
#include<stdio.h>
struct pn544_dev{ //一般性定义结构体
char a;
};
typedef struct { //定义一个数据类型
char a;
}pn545_dev;
int main()
{ struct pn544_dev *dev_id;
//struct pn544_dev *pn544_dev = dev_id; //这个可以
struct pn544_dev pn544_dev; //这个也是可以,可见不是数据类型的愿因
pn544_dev.a='a';
putchar(pn544_dev.a);
pn545_dev pn545_dev; //这个也可以,即使用typedef声明了数据类型,也可以同名。
pn545_dev.a= 'b'
putchar(pn545_dev.a);
return 0;}
参考资料来源:百度百科 ——结构体类型
struct type {...};
这里的struct type共同称为结构体类型名.
另一种是typedef出来的. typedef struct type TYPE; 这里的TYPE也是类型名.
二者可以写一起. typedef struct type {...} TYPE;
所以 在你的题目中, PER为typedef出来的类型名.
凡是用类型名定义的变量, 都是变量名.
假如有人问你“结构体类型”,其实就是结构体类型名。
定义变量时,结构体类型(名)+变量名,就像int a一样