zoukankan      html  css  js  c++  java
  • 结构体

    #include <stdio.h>

    #include <string.h>

    //struct

    //struct Goods

    //{

    //    char name[20];

    //    float price;

    //    long amount;

    //};

    //

    //int main(int argc, const char * argv[]) {

    //    struct Goods book;

    //    strcpy(book.name,"三国演义");

    //    //printf("len = %ld ", strlen(book.name));

    //    book.price = 12.8;

    //    book.amount = 1000;

    //    

    //    printf("name: %s price: %.2f amount: %ld ",book.name, book.price,book.amount);

    //

    //    return 0;

    //}

    //声明一个数据类型

    //typedef struct Student

    //{

    //    char name[20];

    //    int age;

    //    int num;

    //}STU;

    //

    //int main(int argc,const char *argv[])

    //{

    //    STU stu;

    //    strcpy(stu.name, "小红");

    //    stu.age = 12;

    //    stu.num = 50;

    //    printf("name: %s age: %d num: %d ", stu.name,stu.age,stu.num);

    //    

    //    return 0;

    //}

    //1.用法一

    //typedef unsigned char uint_8;

    //typedef unsigned short uint_16;

    //typedef unsigned int uint_32;

    //typedef unsigned long uint_64;

    //

    //typedef int int_32;

    //

    //int main(int argc,const char *argv[])

    //{

    //    uint_32 a=100;

    //    printf("a = %d ", a);

    //

    //    return 0;

    //}

    //2.给结构体取别名

    //3.声明复杂类型

    //int (*p)(int,int);

    //typedef int (*pfunc)(int,int);//int (*)(int,int)

    //

    //int add(int a, int b)

    //{

    //    return a+b;

    //}

    //

    //int main(int argc,const char *argv[])

    //{

    //    pfunc p=add;

    //    printf("%d ",p(3,5));

    //

    //    return 0;

    //}

    //省约结构体名

    //常用方法1

    //结构体名可以跟数据类型名相同

    //typedef struct Student{

    //    char name[20];

    //    int age;

    //}Student;

    //常用方法二

    //typedef struct {

    //    char name[20];

    //    int age;

    //}Student;

    //int main(int argc, const char *argv[])

    //{

    //    struct Student stu={"小红",12};

    //    

    //    printf("name = %s, age = %d ", stu.name,stu.age);

    //

    //    return 0;

    //}

    //结构体指针

    //typedef struct {

    //    char name[20];

    //    int age;

    //}Student,*PStudent;

    //通过-> 运算符访问结构体中的成员变量

    //int main(int argc, const char *argv[])

    //{

    //    PStudent pstu = NULL;

    //    Student stu={"小华",22};

    //    pstu = &stu;

    //    

    //    printf("name = %s age = %d ", pstu->name,pstu->age);

    //    return 0;

    //}

    //结构体数组

    //int main(int argc,const char *argv[])

    //{

    //    Student *pstu;

    //    Student stu;

    //    pstu = &stu;

    //    

    //    //scanf("%s%d",stu.name,&stu.age);

    //    scanf("%s%d",pstu->name,&pstu->age);

    //    

    //    printf("name = %s , age = %d ", stu.name,stu.age);

    //    return 0;

    //}

    //int main(int argc,const char *argv[])

    //{

    //    Student stu[5]={{"小华",12},{"小乐",8},{"小花",10},{"小飞",14},{"小黄",7}};

    //    

    //    for (int i=0; i<5-1; i++) {

    //        for (int j=0; j<5-i-1; j++) {

    //            if (stu[j].age > stu[j+1].age) {

    //                Student temp=stu[j];

    //                stu[j]=stu[j+1];

    //                stu[j+1]=temp;

    //            }

    //        }

    //    }

    //    for (int i=0; i<5; i++) {

    //        printf("%s-----%d ",stu[i].name,stu[i].age);

    //    }

    //

    //    return 0;

    //}

    //int main(int argc,const char *argv[])

    //{

    //    Student stu[5]={{"小华",12},{"小乐",8},{"小花",10},{"小飞",14},{"小黄",7}};

    //    PStudent pstu = stu;

    //    

    //    for (int i=0; i<5-1; i++) {

    //        for (int j=0; j<5-i-1; j++) {

    //            if ((pstu+j)->age > (pstu+j+1)->age) {

    //                Student temp=*(pstu+j);

    //                *(pstu+j)=*(pstu+j+1);

    //                *(pstu+j+1)=temp;

    //            }

    //        }

    //    }

    //    for (int i=0; i<5; i++) {

    //        printf("%s-----%d ",(pstu+i)->name,(pstu+i)->age);

    //    }

    //    

    //    return 0;

    //}

    //结构体嵌套

    // 写法一

    //typedef struct {

    //    char name[20];

    //    int age;

    //    struct Date

    //    {

    //        int year;

    //        int month;

    //        int day;

    //    }date;//声明数据类型的时候直接声明变量

    //    char sex;

    //}Employer;

    //写法二

    //typedef struct Date

    //{

    //    int year;

    //    int month;

    //    int day;

    //}Date;

    //

    //typedef struct {

    //    char name[20];

    //    int age;

    //    Date date;

    //    char sex;

    //}Employer;

    //

    //

    //int main(int argc,const char *argv[])

    //{

    //    Employer xiaohua={"小华",12,{2014,12,4},1};

    //    printf("name:%s age:%d %d年%d月%d日,性别:%d ",xiaohua.name,xiaohua.age, xiaohua.date.year,xiaohua.date.month,xiaohua.date.day, xiaohua.sex);

    //    

    //

    //    return 0;

    //}

    //声明结构体类型

    //struct Student{

    //    char name[20];

    //    int age;

    //};

    //声明结构体类型同时定义变量

    //struct Student

    //{

    //    char name[20];

    //    int age;

    //}xiaoHong={"小红",15},xiaoHua;

    //struct

    //{

    //    char name[20];

    //    int age;

    //}xiaoHong={"小红",15},xiaoHua;

    //3.给结构体取名

    //typedef struct {

    //    char name[20];

    //    int age;

    //}Student;

    //

    //int main(int argc,const char *argv[])

    //{

    //    //struct Student stu;

    //    Student xiaoHong;

    //    

    //    printf("%s %d ", xiaoHong.name,xiaoHong.age);

    //

    //

    //    return 0;

    //}

    //结构体大小

    //不是成员变量的相加,是成员变量对齐后的内存大小

    typedef struct {

        double f2;

        char name[15];

        int a;

        long b;

        long double l;

        float f;

    }StructSize;

    int main(int argc,const char *argv[])

    {

        printf("%ld ",sizeof(StructSize));

        return 0;

    }

    让明天,不后悔今天的所作所为
  • 相关阅读:
    JavaScript作用域
    JavaScript数据类型
    CSS页面布局(二)
    CSS页面布局(一)
    CCS界面组件
    JavaScript面向对象设计
    python-序列化与反序列化
    python-常用模块
    python-re模块
    python-匿名函数
  • 原文地址:https://www.cnblogs.com/-yun/p/4273331.html
Copyright © 2011-2022 走看看