C/C++结构体
时间:2021-02-27 13:32:58 阅读:0 评论:0 收藏:0 [点我收藏+]
标签:return 声明 void def 结构体 type tst 存储 code
结构变量的声明和初始化
#include <cstdio>int main(){struct {int age;int height; } x, y = {29, 180}; // 结构的成员在内存中按照声明的顺序存储 x.age = 30; x.height = 170; return 0;}
结构类型——结构标记
#include <cstdio>int main(){struct struct_name {int age;int height; } x; // 同时声明了【结构标记struct_name】和【结构变量x】 struct struct_name y; // 纯C时必须加上struct struct_name z; // C++编译器则不必加struct return 0;}
结构类型——typedef
#include <cstdio>int main(){ typedef struct {int age;int height; } struct_name; struct_name x; return 0;}
C风格结构体
传递指向结构的指针来代替传递结构可以避免生成副本。
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;struct _Student {char* name;int age;int score;};typedef struct _Student* Student;Student newStudent(char* name, int age, int score){ Student result = (Student) malloc(sizeof(struct _Student)); result->name = name; result->age = age; result->score = score; return result; }void printStudent(Student x){ printf("%s %d %d\n", x->name, x->age, x->score);}int main(){ Student a, b; a = newStudent("asd", 19, 100); b = newStudent("dad", 12, 110); printStudent(a); printStudent(b); return 0;}
赞 (0)