精华内容
下载资源
问答
  • 一.struct 结构体框架 : struct 类型名{ };例:struct Student{char name[20];int age;};结构体自定义数据类型,定义完成后等同于内置类型。1.结构体不能定义一个自身的普通成员,但可以定义一个指向自身的指针...

    一.struct 结构体框架 : 

    struct    类型名

    {        

    }

    例:struct Student

    {

    char name[20];

    int age;

    };

    结构体自定义数据类型,定义完成后等同于内置类型。

    1.结构体不能定义一个自身的普通成员,但可以定义一个指向自身的指针。

    例:

    struct Student

    {

    char name[20];

    int age;

    };

    struct A

    {

    struct Student e;    //ok

    struct B f;            //error B未定义

    struct A g;          //error,因为无法确定g的大小,不能给它分配内存空间

    struct A *p;        //ok

    };

    2.结构体普通变量通过"."号访问它的成员,而结构体指针通过"->"号访问它的成员。

    struct Student

    {

    char name[20];

    int age;

    };

    struct Student  stu1;//stu1的name和age为随机值

    struct Student  stu2={"zhang"};//name=zhang,age=0 因为stu2为聚合类型

    struct Student  stu3={"li",25};

    若要将stu3的age变为30   进行操作  stu3.age=30;

    若要将stu3的name变为"wang"   进行操作strcpy(stu3.name,"wang");

    struct Student *pstu=&stu2;

    若要将stu2的age变为35      进行操作pstu->age=35//也可以(*pstu).age=35;一般用"->"

    若要将stu2的name变为"sun"   进行操作strcpy(pstu->name,"sun");//也可以strcpy((*pstu).name,"sun");一般用"->"

    例:

    #include <stdio.h>
    #include<string.h>
    struct Student 
    {
    	char name[20];
    	int age;
    };
    void show(struct Student *s)
    {
    	printf("name:%s\nage:%d\n\n",s->name,s->age);
    }
    int main()
    {
    	struct Student  stu1;//stu1的name和age为随机值
    	struct Student  stu2={"zhang"};//name=zhang,age=0 因为stu2为聚合类型
    	struct Student  stu3={"li",25};
    	printf("stu1:\n");
    	show(&stu1);
    	printf("stu2:\n");
    	show(&stu2);
    	printf("stu3:\n");
    	show(&stu3);
    
    	//若要将stu3的age变为30   进行操作  stu3.age=30;
        //若要将stu3的name变为"wang"   进行操作strcpy(stu3.name,"wang");
    	 stu3.age=30;
    	 strcpy(stu3.name,"wang");
    	 printf("修改后的stu3:\n");
    	 show(&stu3);
    
    	 struct Student *pstu=&stu2;
          //若要将stu2的age变为35      
    	// 进行操作pstu->age=35也可以(*pstu).age=35;
    	  
         //若要将stu2的name变为"sun"   
    	 //进行操作strcpy(stu2->name,"sun");也可以strcpy((*pstu).name,"sun");
          pstu->age=35;
    	  strcpy(pstu->name,"sun");
    	  printf("修改后的stu2:\n");
    	   show(&stu2);
    	return 0;
    }

    结果:


    二.typedef

    typedef 数据类型 新数据类型     //它用于类型定义,就相当于给一个类型起一个新名称

    typedef unsigned long long int unit64;        //给unsigned long long int 起新名称为unit64

    unit64 a;            //变量a的类型unsigned long long int 

    区分:

    typedef  int * Pint;

    #define  PINT int *

    Pint i,j;        //i,j的类型都为int *

    PINT x,y;     //x的类型为int * ,y的类型为int 


    typedef int Arr[10];

    Arr a;      //定义一个长度为10的int 数组,数组名为a

    例:

    typedef int Arr[10];
    
    int main()
    {
    	Arr a;
    	printf("%d\n",sizeof(a));
    	return 0;
    }

    结果:


     typedef int (*pfun)(int ,int);

    pfun p;       //变量p为一个返回值int,函数形参为两个int的函数指针

    例:

    int Max(int a,int b)
    {
    	return a>b?a:b;
    }
    
    typedef int (*pfun)(int,int);
    
    int main()
    {
    	pfun p=Max;
    	printf("%d\n",p(2,6));
    	return 0;
    }

    结果:



    用typedef 简略结构体名称

    例:struct Student

    {

    char name[20];

    int age;

    };

    定义结构体变量时要加上struct 比较麻烦

    struct Student e;

    为了简略用typedef 给struct Student起新名称为Student

    typedef struct Student Student;

    此时定义结构体变量时为 Student e;

    例:

    struct Student 
    {
    	char name[20];
    	int age;
    };
    
    typedef struct Student Student;
    int main()
    {
    	Student e={"wang",23};
    	printf("name:%s\nage:%d\n",e.name,e.age);
    	return 0;
    }

    结果:


    在C++中通常使用

    typedef struct Student

    {

    char name[20];

    int age;

    }Student;          //Student为给struct Student起的新名称

    例:

    typedef struct Student 
    {
    	char name[20];
    	int age;
    }Student;
    
    
    int main()
    {
    	Student e={"wang",23};
    	printf("name:%s\nage:%d\n",e.name,e.age);
    	return 0;
    }

    结果:





    展开全文
  • structtypedef struct 结构体定义区别

    千次阅读 2019-05-03 10:59:34
    1.结构体的定义: 允许用户自己建立由不同类型数据组成的组合型的数据结构...2.下面以一个结构体实例来说明一下struct的用法: structos_tcb { OS_STK*OSTCBStkPtr; OS_STK*OSTCBStkBottom; INT32UOSTCBStkSi...

    1.结构体的定义:

       允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体(实际上应称为 结构体类型)。

     

    2.下面以一个结构体实例来说明一下struct的用法:

    struct os_tcb

    {

      OS_STK    *OSTCBStkPtr;

      OS_STK    *OSTCBStkBottom;     

      INT32U      OSTCBStkSize;     

      INT16U      OSTCBOpt;         

      INT16U      OSTCBId;            

    };

    Sturct       是声明结构体类型时所必须使用的关键字,不能省略。

    os_tcb      是结构体名

    花括号内   是该结构体所包括的子项,称为结构体成员。

     

    前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。

    可以采取以下3中方式定义结构体类型变量。

    (1)先声明结构体类型,再定义该类型的变量

    定义上面的结构体类型后

    struct os_tcb    OS_TCB;    // 在定义了结构体变量后,系统会为之

             |                       |            // 分配内存单元

    结构体类型名      结构体变量名  

         

    (2)在声明类型的同时定义变量

    struct os_tcb

    {

      OS_STK    *OSTCBStkPtr;

      OS_STK    *OSTCBStkBottom;     

      INT32U      OSTCBStkSize;     

      INT16U      OSTCBOpt;         

      INT16U      OSTCBId;            

    } OS_TCB;     // OS_TCB 是一个结构体变量

     

    (3)不指定类型名而直接定义结构体类型变量

    struct 

    {

      OS_STK    *OSTCBStkPtr;

      OS_STK    *OSTCBStkBottom;     

      INT32U      OSTCBStkSize;     

      INT16U      OSTCBOpt;         

      INT16U      OSTCBId;            

    } OS_TCB;     // OS_TCB 是一个结构体变量

     

    指定了一个无结构体名的结构体类型,显然不能再以此结构体类型去定义其他变量。

     

    注:结构体类型与结构体变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取后运算。在编译时,对类型不分配空间,只对变量分配空间。

     

     

    3.下面再以此结构体实例来说明一下typedef struct的用法:

    (主要参考技术博客:http://dzdesigned80.blog.163.com/blog/static/203259238201245105525341/)

    阅读程序发现两种用 typedef struct 定义结构体的方法

    第一种:

    typedef struct os_tcb

    {

      OS_STK    *OSTCBStkPtr;

      OS_STK    *OSTCBStkBottom;     

      INT32U      OSTCBStkSize;     

      INT16U      OSTCBOpt;         

      INT16U      OSTCBId;            

    }OS_TCB;

    第二种:

    typedef struct 

    {

      OS_STK    *OSTCBStkPtr;

      OS_STK    *OSTCBStkBottom;     

      INT32U      OSTCBStkSize;     

      INT16U      OSTCBOpt;         

      INT16U      OSTCBId;            

    }OS_TCB;

     

    可以看出,上面的区别在于 typedef struct 后面一个跟了标识符,另外一个没有跟标识符,这两个有什么区别呢?这里的os_tcb代表什么?OS_TCB的意义又是什么?

     

    要搞清楚上面的问题,要从两方面入手。

    第一 typedef的用法是什么?

    typedef是在基本类型的基础上定义类型的同义字。注意typedef并不产生新的类型。例如 typedef int exam_score;这里的exam_score 就是一种基本类型,它的意义等同于 int,那么机可以用它来定义变量,exam_score LIMING。

    第二 结构体的定义各个标志符的意义。

    在结构体定义中,通常是这样的

    struct exam_score

    {

    chinese;

    english;

    math;

    physical;

    chemistry;

    }LIMING;

    这里的struct是结构体关键字,exam_score则是结构体类型名,LIMING则是结构体变量。

    弄明白以上两个问题,回过头来看开始的那两个结构体。

    typedef struct os_tcb

    {

      OS_STK    *OSTCBStkPtr;

      OS_STK    *OSTCBStkBottom;     

      INT32U      OSTCBStkSize;     

      INT16U      OSTCBOpt;         

      INT16U      OSTCBId;            

    }OS_TCB; // OS_TCB是一个结构体类型 = struct os_tcb

    这里声明一种结构体类型os_tcb,所以os_tcb就是结构体类型名;OS_TCB是struct os_tcb 的同义字,所以可以直接用OS_TCB来定义变量,同时也可以这样 struct os_tcb xxx,OS_TCB xxx;都是合法的,因为OS_TCB就等同于      

    struct os_tcb。

     

    来看第二种

    typedef struct 

    {

      OS_STK    *OSTCBStkPtr;

      OS_STK    *OSTCBStkBottom;     

      INT32U      OSTCBStkSize;     

      INT16U      OSTCBOpt;         

      INT16U      OSTCBId;            

    }OS_TCB;    // OS_TCB是一个结构体类型 = struct 

    在结构体的定义中允许这样形式的定义:

    struct

    {

    xxx

    xxx

    xxx

    }var;

    这里没有声明结构体变量名,直接定义了结构体变量var,var在这里是结构体变量。这样定义的结果是在程序不能再定义新的结构体变量。

    这种形式加上typedef 之后情况就变了,这里的OS_TCB不是结构体变量,而是struct的同义字(结构体类型),这个同义仅限于上面定义的那种情况,可以用OS_TCB来定义结构体变量。

     

    总结:

    有了以上叙述与理解,我们便可以很容易搞清楚一个易混淆的点:struct{}后面的到底是结构体变量名,还是结构体类型名。

     

    当只是定义结构体类型:

    struct 结构体名

    {

            结构体成员名

     

    }结构体变量名;

    引用结构体成员方式应是:

    结构体变量名. 结构体成员名  //结构体变量直接引用结构体成员

     

    当使用typedef定义时:

    typedef struct 结构体名

    {

            结构体成员名

     

    }结构体类型名;

    引用结构体成员方式应是:

    结构体类型名 xxx;// 定义一个结构体变量

    xxx.结构体成员名  // 引用结构体成员
    --------------------- 
    作者:SudekiMing 
    来源:CSDN 
    原文:https://blog.csdn.net/WalterBrien/article/details/79624405 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 十二、结构体 (1)结构体定义和使用 基本概念:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。...struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种: struct 结构体名 .

    十二、结构体

    (1)结构体定义和使用

    基本概念:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。

    参考视频https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=4205594350351753444

    已投币三连,非常好的视频教程,感谢up主的奉献。

     

    结构体定义和使用:

    语法:

    struct  结构体名  { 结构体成员列表 };

    通过结构体创建变量的方式有三种:

    struct  结构体名  变量名;
    struct  结构体名  变量名 = { 成员1值, 成员2值... };
    定义结构体时顺便创建变量;

    代码:

    /* ------------------ 1.struct  结构体名  变量名; 之后进行赋值操作 ------------------ */
    struct Student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    int main() {
    
    	//struct Student xiaoMing;
    	Student xiaoMing;	// struct关键字可以省略
    
    	xiaoMing.name = "小明";
    	xiaoMing.age = 18;
    	xiaoMing.score = 96;
    
    	xiaoMing = { "小明", 18, 96 };
    
    	cout << "姓名:" << xiaoMing.name << "  年龄:" << xiaoMing.age << "  分数:" << xiaoMing.score << endl;
    
    	system("pause");
    	return 0;
    }
    
    /* -------------- 2.struct  结构体名  变量名 = { 成员1值, 成员2值... }; -------------- */
    struct Student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    int main() {
    
    	Student xiaoMing = {"小明", 18, 96};
    
    	cout << "姓名:" << xiaoMing.name << "  年龄:" << xiaoMing.age << "  分数:" << xiaoMing.score << endl;
    
    	system("pause");
    	return 0;
    }
    
    /* -------------------- 3.定义结构体时顺便创建变量; -------------------- */
    struct Student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    int main() {
    
    	xiaoMing.name = "小明";
    	xiaoMing.age = 18;
    	xiaoMing.score = 96;
    
    	xiaoMing = { "小明", 18, 96 };
    
    	cout << "姓名:" << xiaoMing.name << "  年龄:" << xiaoMing.age << "  分数:" << xiaoMing.score << endl;
    
    	system("pause");
    	return 0;
    }
    -----------------------------------------------------------------------------------
    姓名:小明  年龄:18  分数:96
    请按任意键继续. . .
    
    
    

     

    使用 typedef 定义 struct 结构体方法https://blog.csdn.net/Mark_md/article/details/107656790

     

    (2)结构体数组

    作用:将自定义的结构体放入到数组中,方便维护。

    语法:

    struct  结构体名  数组名[ 元素个数 ] = { {}, {}, ... {} };
    struct Student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    int main() {
    
    	struct Student stuArray[3] =
    	{
    		{ "小明", 18, 96 },
    		{ "小红", 20, 100 },
    		{ "小亮", 21, 98 }
    	};
    
    	for (int i = 0; i < 3; i++)
    	{
    		cout << "姓名:" << stuArray[i].name 
    			<< "  年龄:" << stuArray[i].age 
    			<< "  分数:" << stuArray[i].score << endl;
    	}
    
    	system("pause");
    	return 0;
    }
    ----------------------------------------------------------------------------
    姓名:小明  年龄:18  分数:96
    姓名:小红  年龄:20  分数:100
    姓名:小亮  年龄:21  分数:98
    请按任意键继续. . .

     

    (3)结构体指针

    作用:通过指针访问结构体中的成员。

    利用操作符 -> 可以通过结构体指针访问结构体属性。

    示例:

    struct Student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    int main() {
    
    	struct Student xiaoMing = { "小明", 18, 96 };
    	Student* p = &xiaoMing;
    	
    	cout << "姓名:" << p->name
    		<< "  年龄:" << p->age
    		<< "  分数:" << p->score << endl;
    
    	system("pause");
    	return 0;
    }
    -----------------------------------------------------------------
    姓名:小明  年龄:18  分数:96
    请按任意键继续. . .

     

    (4)结构体嵌套

    结构体嵌套结构体:

    作用:结构体中的成员可以是另一个结构体。

    例如:每个老师辅导一个学员,老师的结构体中,记录学生的结构体。

    示例:

    struct student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    struct teacher
    {
    	int id;			// 职工编号
    	string name;		// 教师姓名
    	int age;		// 教师年龄
    	struct student stu;	// 子结构体 学生
    };
    
    int main() {
    
    	teacher wang;
    
    	wang.id = 112374;
    	wang.name = "王芳";
    	wang.age = 26;
    	wang.stu.name = "小明";
    	wang.stu.age = 18;
    	wang.stu.score = 96;
    	
    	cout << "教师姓名:" << wang.name
    		<< "  教师年龄:" << wang.age
    		<< "  教师ID号:" << wang.id << endl;
    	cout << "学生姓名:" << wang.stu.name
    		<< "  学生年龄:" << wang.stu.age
    		<< "  学生分数:" << wang.stu.score << endl;
    
    	system("pause");
    	return 0;
    }
    -------------------------------------------------------------------------
    教师姓名:王芳  教师年龄:26  教师ID号:112374
    学生姓名:小明  学生年龄:18  学生分数:96
    请按任意键继续. . .

     

    (5)结构体做函数参数

    作用:将结构体作为参数向函数中传递

    传递方式分两种:值传递,地址传递。

    值传递示例:

    struct student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    void printStudent(student stu)
    {
    	cout << "姓名:" << stu.name
    		<< "  年龄:" << stu.age
    		<< "  分数:" << stu.score << endl;
    
    	stu.name = "无";
    	stu.age = 0;
    	stu.score = 0;
    }
    
    int main() {
    
    	student xiaoMing = { "小明", 18, 96 };
    
    	printStudent(xiaoMing);
    
    	cout << "姓名:" << xiaoMing.name
    		<< "  年龄:" << xiaoMing.age
    		<< "  分数:" << xiaoMing.score << endl;
    
    	system("pause");
    	return 0;
    }
    ---------------------------------------------------------------------------
    姓名:小明  年龄:18  分数:96
    姓名:小明  年龄:18  分数:96
    请按任意键继续. . .

    地址传递示例:

    struct student
    {
    	// 成员列表
    	string name;    // 姓名
    	int age;	// 年龄
    	int score;	// 分数
    };
    
    void printStudent(student * stu)
    {
    	cout << "姓名:" << stu->name
    		<< "  年龄:" << stu->age
    		<< "  分数:" << stu->score << endl;
    
    	stu->name = "无";
    	stu->age = 0;
    	stu->score = 0;
    }
    
    int main() {
    
    	student xiaoMing = { "小明", 18, 96 };
    
    	printStudent(&xiaoMing);
    
    	cout << "姓名:" << xiaoMing.name
    		<< "  年龄:" << xiaoMing.age
    		<< "  分数:" << xiaoMing.score << endl;
    
    	system("pause");
    	return 0;
    }
    --------------------------------------------------------------------------
    姓名:小明  年龄:18  分数:96
    姓名:无  年龄:0  分数:0
    请按任意键继续. . .

    如果不想实参结构体内容,用值传递,反之用地址传递。

    地址传递还可以使用数组,可实现同样功能,书写与阅读比指针更加直观。

     

    (6)结构体中const使用场景

    作用:用const来防止误操作

    值传递会copy,会占内存空间,复制也会多花时间。所以如果可以用地址传递,可以提高执行效率。

    而地址传递可能会对原始对象进行误修改,这时候就可以加 const。如果出现修改,编译器会报错

    示例:

    void printStudent(const student * stu)
    {
    	cout << "姓名:" << stu->name
    		<< "  年龄:" << stu->age
    		<< "  分数:" << stu->score << endl;
    
    	stu->name = "无";    // 编译器会报错
    	stu->age = 0;
    	stu->score = 0;
    }

     

    展开全文
  • 1.C语言中,声明一个结构体如下:

    1.C语言中,结构体的声明如下:首先关键字struct表示接下来是一个结构,后面是一个可选的标记,用来引用该结构的快速标记。

    struct book
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    };

    上述结构声明,是“结构设计”的意思。它告诉编译器如何表示数据,而没有让计算机为数据分配空间。


    然后声明或定义一个结构体变量时,如下:

    struct book library;
    其中struct 不能省。


    综合上述的两个,可以合二为一,声明一个结构体变量:

    struct book
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    } library;
    其中可把标记book省略,如下

    struct
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    } library;
    这两个版本的语句都是声明了一个结构体,并定义了一个该结构体变量library


    如果想多次使用一个结构体模板,就需要使用带有标记的形式;或者使用typedef,如下:

    typedef struct book
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    } BOOK;
    后面便可以用BOOK代替 struct book 来声明该类型变量。

    同样,这里的结构标记可以省去。

    typedef struct
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    } BOOK;


    2.C++中,声明一个结构体:

    struct book
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    };
    然后直接就可以使用 book 来定义一个该类型变量:

    book library;

    综合上两句,声明并定义一个结构体:

    struct book
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    } library;


    这里如果用typedef,则只是定义了一个别名,并没有定义变量

    typedef struct book
    {
      char title[MAXN];
      char author[MAXM];
      float value;
    } library;
    library 只是book的一个别名,并不是一个变量。(和C中相同)










    展开全文
  • 结构体 typedef struct

    2020-09-29 17:33:44
    之前学过typedef struct的用法,突然忘记了,这回再看理解的更清楚了 转发 https://blog.csdn.net/wzz110011/article/details/78883838 在学习数据结构的时候,我经常遇到typedef struct,刚开始感觉很别扭,查阅...
  • 结构体 结构体一般形式: 定义一个结构体结构体初试化的一般方法: 结构体数组: 结构体数组初始化与赋值 结构体构造函数 第一种构造函数形式 第二种构造函数形式 结构体 结构体一般形式: struct ...
  • 结构体typedef struct的用法 和结构体的定义   结构体的定义: 1.  struct Person {  char name[20];  char sex;  float height;  int age; }; 只有结构体的定义 2.   struct Person {  char...
  • 1. 在C++中 (1)定义区别 struct Student ...typedef struct Student2 { int num; char name[12]; }stu2;//stu2是一个结构体类型,即stu2是Student2的别名 (2) 使用区别 可以直接访问stu1.n...
  • typedef struct 是为了使用这个结构体方便。 具体区别在于: 若struct node { } 这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n; 若用typedef,可以这样写:typedef struct node{ }NODE; ,...
  • struct [结构体类型名] { 数据类型 成员名1; 数据类型 成员名2; }; 可先定义结构体类型,再用该类型名定义结构体变量。 类型定义的格式: typedef 类型 标识符; 类型定义不是定义一种新的数据类型,而是给已有的...
  • 1、typedef关键字 C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE: typedef unsigned char BYTE; 在这个类型定义之后,标识符 BYTE 可作为类型...
  • struct 结构体名 变量名 = { 成员1值, 成员2值... }; 定义结构体时顺便创建变量; 这三种的具体代码如下: /* ------------------ 1.struct 结构体名 变量名; 之后进行赋值操作 ------------------ */ struct ...
  • typedef struct结构体总结篇

    千次阅读 2018-07-12 10:09:31
    //1、用typedef struct student{类型 变量名}STU,*STU1,在{}后面跟的STU是该结构体的变量名,*STU1是该结构体的类型的地址。 typedef struct student{ int age ; }STU ,*STUP; /* 上面的和下面的等价 typedef...
  • 在《数据结构》C语言版中经常遇到定义结构体不同的方式: typedef structstruct。它们之间的区别如下: ...typedef即给struct取别名,在C中定义结构体需要用typedef。此时stu == struct student。在声明...
  • struct 结构体名 { int a; int b; char x; }; //需要分号 struct 结构体名 变量名; //使用方式二 声明与定义同时进行 struct 结构体名 { int a; int b; }变量名; //使用方式三 直接进行定义 struct { int a; ...
  • 结构体typedef

    千次阅读 2019-05-07 16:08:43
    在定义结构体时,结构体中的数据只能定义而不能做其他动作如运算 ...typedef struct{ char name[10]; float Num1; float Num2; float Num3; float Num4=Num1+Num2+Num3; //这样定义结构体中的数据是完全错误...
  • struct结构体

    2018-05-15 09:22:10
    struct Point { int x; int y; }; 定义了一个结构体类型Point,声明变量时直接Point p1; 如果使用typedef,又会造成区别 struct Point { ...//p1是一个结构体变量 typedef struct Point { int x; int y; }p2; ...
  • typedef struct test { int i; char buff[256]; } Test,*test; 1. Test 是这个结构体的别名,我清楚,但是*test代表什么啊,我不太清楚,是指针吗 2. *test怎么理解 谢谢!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,408
精华内容 5,363
关键字:

struct结构体typedef