结构体训练

2018-09-12  本文已影响4人  带着白卡去旅行

定义类型

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;

}
上一篇 下一篇

猜你喜欢

热点阅读