C语言day09-11结构体-初始化

pragma mark 结构体-初始化

pragma mark 概念

pragma mark 代码

#include <stdio.h>
int main()
{
#warning 数组初始化方式
    /*
    int nums[] = {1,3,5};
    
    int nums[3];
    num[0] = 1;
    num[1] = 3;
    num[2] = 5;
     
     // 错误写法
     int nums[3];
     nums = {1,3,5}; // 错误
     
     // 方式3
     int nums[3] = {[1] = 2};
     
     printf("nums[0] = %i\n", nums[0]);
     */
    
    struct Dog
    {
        char *name;
        int age;
        double height;
    };
    
    // 1. 定义的同时初始化
    struct Dog sd = {"wc",13,5.0};
    
    // 2. 先定义再初始化(逐个初始化)
    struct Dog sd1;
    sd1.name = "ww";
    sd1.age = 5;
    sd1.height = 10.9;
    
    // 3.先定义再初始化(一次性初始化);
    struct Dog sd2;
    // 使用强制类型转换 告诉系统是一个结构体
    // 特别注意 : 结构体和数组有一点区别,数组不能先定义再进行一次性的初始化,而结构体可以
    // 只不过需要明确的告诉系统{} 是一个结构体
    sd2 = (struct Dog){"xq",8,2.0}; // 系统搞不清是 数组 还是 结构体
 
    // 4. 指定将数据赋值给指定的属性
    struct Dog sd3 = {.height = 1.77,.name = "ww", .age = 22};
    
    printf("name = %s,age = %i,height = %lf\n",sd3.name,sd3.age,sd3.height);
    return 0;
}

    原文作者:liyuhong165
    原文地址: https://www.jianshu.com/p/ebb3119a5240
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞