码迷,mamicode.com
首页 > 编程语言 > 详细

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;
}

C/C++结构体

标签:return   声明   void   def   结构体   type   tst   存储   code   

原文地址:https://www.cnblogs.com/xkxf/p/14436801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!