设有以下说明语句:
typedef struct stu { int a; float b; }stutype;
则下面叙述中错误的是( )。
A、struct是结构类型的关键字
B、struct stu是用户定义的结构类型
C、a和b都是结构成员名
D、stutype是用户定义的结构体变量名
stutype是类型名,简单来说就是将原来的类型名struct stu改为stutype
需要在之后定义一个类型为stutype的变量,才能再进行访问成员的的操作
如
#include <stdio.h>
typedef struct stu { int a; float b; } stutype;
int main() { stutype student; // 创建一个 stutype 类型的变量 student.a = 10; // 访问并设置成员 a 的值 student.b = 3.14; // 访问并设置成员 b 的值
printf("student.a = %d, student.b = %f", student.a, student.b);
return 0; }
typedef是为结构体定义别名
struct Student std{
int a;
float b;
}
Student 是结构体名字;
std是结构体变量名;
a,b是结构体中的成员变量名。
typedef unsigned char BYTE;
BYTE 相当于 unsigned char
注意 typedef 关键字:是给定义的结构体取别名
typedef常见用法:
typedef long long ll:我们在做OJ时,常见为了方便,常常使用这个关键字给long long 取个别名——ll
这里也是一样的,定义的结构体stu就相当于上面的long long,stutype就相当于ll
要定义结构变量,则一般形式是: struct 结构体名 结构体变量名; 如: struct Student stu1; //定义结构体变量
D、stutype是用户定义(typedef)的结构体变量名
用户想要自己定义结构体只能用typedef
Stutype不是变量名吗
区分struct和typedef关键字
Syou 回复 小武: 是这样的
可视为typedef A B;
A为:
struct stu
{
B为:stutype
就是给结构体起一个别称
stutype是在声明结构体类型structstu的同时定义的该结构体变量,而不是用户定义的结构体类型名。
有大佬解释一下吗
黎明 回复 13213286920: 给结构类型起别称,不是结构体变量
D
用户登录可进行刷题及查看答案
登录后提交答案