结构体训练

定义类型

struct  Student 
{
    char name[64];
    int age;

}s1,s2;//定义类型的同时定义变量


struct  
{
    char name[64];
    int age;

}s5,s6;//匿名类型,定义变量

初始化

Teacher t1 = { "asad",21,01 };
struct Student2
{
    char name[64];
    int age;
}s8 = {"name",21};
struct 
{
    char name[64];
    int age;

}s9 = {"dfsdf",23};

引用
"."操作符 是寻址

#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

typedef struct   Teacher
{

    char name[100];
    int age;
    int id;
}Teacher;
void main()
{
    Teacher t1;//告诉C编译器分配内存;

    //引用
    t1.age = 32;
    printf("%s\n", t1.name);


    strcpy(t1.name, "alfred");
    printf("%d\n", t1.age);
    

    system("pause");
    return;

}

通过指针来操作 "->"等价于"."操作符

void main()
{
    Teacher t2 = {"jack",32,02};
    

    Teacher *p = NULL;
    p = &t2;
    printf("p->age:%d", p->age);
    printf("p->name:%s",p->name);


    system("pause");
    return;

}

结构体元素 和结构体指针
void copyTeacher(Teacher to,Teacher from)
{
to = from;
}
这种方法是通过结构体元素 来交换
内存四区图 表明

内存四区图

#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

//定义一个结构体类型
typedef struct   Teacher
{

    char name[100];
    int age;
    int id;
}Teacher;
//结构体元素  和结构体指针
void  copyTeacher(Teacher *to,Teacher *from)
{
    *to = *from;

}

void main()
{
    Teacher t2 = { "jack",32,02 };

    Teacher t3;
    Teacher t4;
    t3 = t2;
    printf("t3.name%s\n",t3.name);

    printf("copyTeacher后:\n");
    copyTeacher(&t4, &t2);
    printf("t4.name%s\n", t4.name);


    system("pause");
    return;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容