• 数组、结构体、联合体、枚举类型、类型转换


    1、数组

    int num[2] = { 1, 2 };//1×2,num[0]=1
    int num[2][2] = { { 00, 01 }, { 10, 11 } };//2×2,num[1][1]=11
    int num[2][2][2] = { {{000,001},{010,011}}, {{100,101},{110,111}} };//2个2×2数组,num[1][1][1]=111

     2、结构体类型,变量成员单独分配内存,分别保存各自数据。

    #include <stdio.h>
    int main()
    {
        struct Family{//struct 结构体类型名{数据类型n 变量名n;};
            int age;
            char name[32]; //分配内存,占32字节
            char address[64];
        }wei;//Family结构体名,wei变量名,“;”不可省略
        //或去掉wei,增加struct Family wei;//定义Family类型的结构体变量wei
        //若wei是wei[5],则为结构体数组
        printf("Input age:");
        scanf("%d", &wei.age);
        printf("Input name:");
        scanf("%s", &wei.name);
        printf("Input address:");
        scanf("%s", &wei.address);
    
        printf("name:%s
    ", wei.name);
        printf("age:%d
    ", wei.age);
        printf("address:%s", wei.address);
        return 0;
    }

    3、联合体类型,变量成员共用同一内存,同一时刻只能保存一个成员的数据。

    #include <stdio.h>
    int main()
    {
        union Family{ //union 联合体类型名{数据类型n 变量名n;};
            int age;
            char name[32];
            char address[64];
        }wei;//Family联合名,wei变量名,“;”不可省略
        //或去掉wei,增加union Family wei;//定义Family类型的联合体变量wei
        printf("Input age:");
        //输入一次,显示一次,因为新的赋值会替换掉 
        scanf("%d", &wei.age); printf("age:%d
    ", wei.age);
        printf("Input name:");
        scanf("%s", &wei.name);    printf("name:%s
    ", wei.name);
        printf("Input address:");
        scanf("%s", &wei.address); printf("address:%s", wei.address);
        return 0;
    }

    结构体与联合体区别:

    内存:struct为所有变量占用字节之和;union为最大成员变量占用的字节数

    赋值有效值:struct每个成员变量各自赋值;union最后一次赋值有效

    4、枚举类型

    #include<stdio.h>
    int main()
    {
        enum Choice{a,b,c=64,d};//enum 枚举类型名{枚举元素列表};
        printf("a=%d
    ", a);//第一个元素默认为0,依次递增1.a=0
        printf("d=%d
    ", d);//若已赋值,则之后元素依次递增1.d=65
        printf("d=%c
    ", d);//元素可以赋值给任意数据类型。d=A
        return 0;
    }
    #include<iostream>
    using namespace std;
    
    enum WeekDay{sun,mon,tue,wed,thu,fri,sat};//默认sun=0,mon=1,...
    
    int main(){
        enum WeekDay x;//定义WeekDay类型的枚举变量x
        x=mon;//枚举变量不能直接用整型赋值,如x=1。因为类型不同,x是WeekDay类型的枚举变量,1是整型
        cout<<x<<endl;//1,输出枚举常量mon对应的值。
        return 0;
    }

    5、类型转换(字符-数,整-浮点)

    #include<stdio.h>
    #include<stdlib.h>//函数依赖的头文件
    int main()
    {
        char *str = "12.34";//定义字符串变量
        printf("字符串转整数:%d
    ", atoi(str));//函数atoi(),12
        printf("字符串转浮点数:%f
    ", atof(str));//函数atof(),12.340000
        return 0;
    }
    --------------------------------------------------------------------------------
    #include<stdio.h>
    int main()
    {
        int num = 65;
        printf("%f
    ",num);//整型转浮点型
        float f = (float)num;
        printf("%f
    ",f);//与上等效
        return 0;
    }
  • 相关阅读:
    Ajax缓存解决办法【转】
    【转】关于找工作的鸡零狗碎(续)
    科技爱好者周刊(第 167 期):广告拦截器太过分了
    科技爱好者周刊(第 166 期):视频学习胜过读书吗?
    GitHub镜像
    支付宝小程序环境判断
    怎么样给背景图加透明度
    JavaScript如何实现上拉加载,下拉刷新?
    什么是HTTP? HTTP 和 HTTPS 的区别?
    网页中的一键加QQ群、唤起QQ群聊天窗口
  • 原文地址:https://www.cnblogs.com/xixixing/p/6810474.html
Copyright © 2020-2023  润新知