精华内容
下载资源
问答
  • 结构体变量初始化

    2009-05-19 17:12:00
    转自:http://www.neu.edu.cn/cxsj/pointchart/c9-struct/Untitled(8).htmlTAG:结构体,结构体变量,结构体变量声明,结构体变量初始化,结构体变量引用,结构体成员变量引用TEXT:C语言中引用变量的基本原则是在使用变量...
    TAG: 结构体,结构体变量,结构体变量声明,结构体变量初始化,结构体变量引用,结构体成员变量引用
    TEXT:C 语言中引用变量的基本原则是在使用变量前,需要对变量进行定义并初始化。其方法是在定义变量的同时给其一初始值。结构体变量的初始化,遵循相同的规律。
    简单变量的初始化形式如下:
    数据类型 变量名=初始化值;
    例如,定义整型变量a,并给其初始化值10的语句如下
    int a=10;
    数组的初始化,需要通过一常量数据列表,对其数组元素分别进行初始化,形式如下:
    数据类型 数组名称[数组长度]={初始化值1,初始化值2,…, 初始化值n};
    例如,定义长度为5的整型数组,并对其初始化的语句如下:
    int A[5]={20,21,0,3,4};
    结构体变量的初始化方式与数组类似,分别给结构体的成员变量以初始值,而结构体成员变量的初始化遵循简单变量或数组的初始化方法。具体的形式如下:
    struct 结构体标识符
    {
    成员变量列表;
    };
    struct 结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n };
    例如,定义struct Point类型变量,并初始化的语句如下:
    struct Point  oP1={0.0,0.2,0.3};
    struct Point 类型变量oP1的三个成员变量的值分别为
    oP1.x=0.0,
    oP1.y=0.2
    oP1.z=0.3
    由于定义结构体变量有三种方法,因此初始化结构体变量的方法对应有三种,上面已经介绍了其中的一种形式,其他两种形式如下:
    struct Point
    {
    double x;
    double y;
    double z;
    } oP1={0.0,0.2,0.3} ; struct
    {
    double x;
    double y;
    double z;
    } oP1={0.0,0.2,0.3} ;
    在初始化结构体变量时候,既可以初始化其全部成员变量,也可以仅仅对其中部分的成员变量进行初始化。例如:
    struct Student
    {
    long id;
    char name[20];
    char sex;
    }a= {0};
    其相当于a.id=0;a.name=“”;a.sex=‘/0x0’。
    仅仅对其中部分的成员变量进行初始化,要求初始化的数据至少有一个,其他没有初始化的成员变量由系统完成初始化,为其提供缺省的初始化值。各种基本数据类型的成员变量初始化缺省值如表9-1所示。

    表9-1 基本数据类型成员变量的初始化缺省值

    数据类型
    缺省初始化值
    Int
    0
    Char
    ‘/0x0’
    float
    0.0
    double
    0.0
    char Array[n]
    “”
    int Array[n]
    {0,0 …,0}

    对于复杂结构体类型变量的初始化,同样遵循上述规律,对结构体成员变量分别赋予初始化值。例如:
    struct Line
    {
    int id;
    struct Point StartPoint;
    struct Point EndPoint;
    }oLine1={0, /* 初始化id */
    {0,0,0}, /* 初始化StartPoint*/
    {100,0,0} /* 初始化EndPoint */
    };
    其中常量0用于初始化oLine1的基本类型成员变量id;常量列表{0,0,0}用于初始化oLine1的struct Point类型成员变量StartPoint;常量列表{100,0,0}用于初始化oLine1的struct Point类型成员变量EndPoint。

    /*******************************************************************/
    虽然真的是很久没用c了,但是居然就是这个初始化也搞了2小时><
    记住,struct不能包含 类,可以是指针。
    展开全文
  • 本文给大家总结的struct数据有3种初始化方法1、顺序2、C风格的乱序3、C++风格的乱序下面通过示例代码详细介绍这三种初始化方法。1)顺序这种方法很常见,在一般的介绍C的书中都有介绍。顺序初始化的特点是: 按照成员...

    本文给大家总结的struct数据有3种初始化方法

    1、顺序

    2、C风格的乱序

    3、C++风格的乱序

    下面通过示例代码详细介绍这三种初始化方法。

    1)顺序

    这种方法很常见,在一般的介绍C的书中都有介绍。顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化;允许只初始化部分成员;在被初始化的成员之前,不能有未初始化的成员。

    示例:

    struct User oneUser = {10, "Lucy", "/home/Lucy"};

    2)乱序(C风格)

    顺序的缺陷是必须按成员定义的顺序逐个初始化,不能间隔。而乱序的方式则很好的解决了这个问题,因为这种方式是按照成员名进行。

    示例:

    struct User oneUser = {

    .name = "Lucy",

    .id = 10,

    .home = "/home/Lucy"

    };

    3)乱序(C++风格)

    C++风格的乱序初始化方式跟C风格的一样,只是它更常用在C++代码里。

    示例:

    struct User oneUser = {

    name:"Lucy",

    id:10,

    home:"/home/Lucy"

    };

    注意:不论是哪种方式,都允许只初始化部分成员;未被初始化的成员默认为0(指针类型的成员默认为NULL)。两种乱序初始化方法,即可以用在C代码中,也可以用在C++代码中。

    以上就是这篇文章的全部内容,希望大家能够喜欢,如果有疑问可以留言交流。

    展开全文
  • unity ComputeShader里结构体变量初始化如何不用分支判断 init 是一个int 类型 在跑完第一帧之后会被设置成其他值 现在想求助各位大神 如何在不使用标志位的情况下初始化这个结构体里的成员变量 dataBuffer[f].pos...
  • 这里挑出一个最新发现的一个让我郁闷半天的小问题展开来聊聊。
  • Keil 结构体变量初始化

    千次阅读 2016-09-30 15:31:58
    http://hxluo.blog.163.com/blog/static/1966022762015216111439748/http://www.openedv.com/posts/list/37045.htm例如声明了这样的结构体 typedef struct{ u16 cursorx; u16 cursory; u16 x1,y1; u16 x2,y

    http://hxluo.blog.163.com/blog/static/1966022762015216111439748/

    http://www.openedv.com/posts/list/37045.htm

    例如声明了这样的结构体
    typedef struct{
    u16 cursorx;
    u16 cursory;
    u16 x1,y1;
    u16 x2,y2;
    u16 point_color;
    u16 back_color;
    u8 size;
    u8 mode;
    }_tft_printtypedef;

    并声明变量、初始化
    _tft_printtypedef TFT_prStuc={.cursorx=0,
    .cursory=0,
    .x1=0,
    .y1=0,
    .point_color=WHITE,
    .back_color=BLUE,
    .size=12,
    .mode=0};

    这样的初始化在keil中(我用的的keil5)书写后并不会有提示,但编译会出错
    touch.c(333): error: #29: expected an expression
    .cursorx=30,
    这样初始化需要在编译选项中勾选 c99 mode

    C99 Mode

    展开全文
  • 结构体变量初始化

    2012-04-18 13:18:39
    结构体变量初始化 TAG:结构体,结构体变量,结构体变量声明,结构体变量初始化,结构体变量引用,结构体成员变量引用 TEXT:C语言中引用变量的基本原则是在使用变量前,需要对变量进行定义并初始化。其方法是...
     
    
    结构体变量初始化
    TAG: 结构体,结构体变量,结构体变量声明,结构体变量初始化,结构体变量引用,结构体成员变量引用
    TEXT:C 语言中引用变量的基本原则是在使用变量前,需要对变量进行定义并初始化。其方法是在定义变量的同时给其一初始值。结构体变量的初始化,遵循相同的规律。
    简单变量的初始化形式如下:
    数据类型 变量名=初始化值;
    例如,定义整型变量a,并给其初始化值10的语句如下
    int a=10;
    数组的初始化,需要通过一常量数据列表,对其数组元素分别进行初始化,形式如下:
    数据类型 数组名称[数组长度]={初始化值1,初始化值2,…, 初始化值n};
    例如,定义长度为5的整型数组,并对其初始化的语句如下:
    int A[5]={20,21,0,3,4};
    结构体变量的初始化方式与数组类似,分别给结构体的成员变量以初始值,而结构体成员变量的初始化遵循简单变量或数组的初始化方法。具体的形式如下:
    struct 结构体标识符
    {
    成员变量列表;
    };
    struct 结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n };
    例如,定义struct Point类型变量,并初始化的语句如下:
    struct Point  oP1={0.0,0.2,0.3};
    struct Point 类型变量oP1的三个成员变量的值分别为
    oP1.x=0.0,
    oP1.y=0.2
    oP1.z=0.3
    由于定义结构体变量有三种方法,因此初始化结构体变量的方法对应有三种,上面已经介绍了其中的一种形式,其他两种形式如下:
    struct Point
    {
    double x;
    double y;
    double z;
    } oP1={0.0,0.2,0.3} ; struct
    {
    double x;
    double y;
    double z;
    } oP1={0.0,0.2,0.3} ;
    在初始化结构体变量时候,既可以初始化其全部成员变量,也可以仅仅对其中部分的成员变量进行初始化。例如:
    struct Student
    {
    long id;
    char name[20];
    char sex;
    }a= {0};
    其相当于a.id=0;a.name=“”;a.sex=‘\0x0’。
    仅仅对其中部分的成员变量进行初始化,要求初始化的数据至少有一个,其他没有初始化的成员变量由系统完成初始化,为其提供缺省的初始化值。各种基本数据类型的成员变量初始化缺省值如表9-1所示。

    表9-1 基本数据类型成员变量的初始化缺省值

    数据类型
    缺省初始化值
    Int
    0
    Char
    ‘\0x0’
    float
    0.0
    double
    0.0
    char Array[n]
    “”
    int Array[n]
    {0,0 …,0}

    对于复杂结构体类型变量的初始化,同样遵循上述规律,对结构体成员变量分别赋予初始化值。例如:
    struct Line
    {
    int id;
    struct Point StartPoint;
    struct Point EndPoint;
    }oLine1={0, /* 初始化id */
    {0,0,0}, /* 初始化StartPoint*/
    {100,0,0} /* 初始化EndPoint */
    };
    其中常量0用于初始化oLine1的基本类型成员变量id;常量列表{0,0,0}用于初始化oLine1的struct Point类型成员变量StartPoint;常量列表{100,0,0}用于初始化oLine1的struct Point类型成员变量EndPoint。

    展开全文
  • 关于结构体变量非定义时初始化问题C语言是否规定对结构体变量初始化只能在定义时进行?那为何在VS2013下DEBUG如下代码没有报错?#include#includeintmain(void){structstu{intnum;charname[20];}s,ss,sss;sss={1,...
  • 一、首先我们来了解关于结构体以及结构体数组的概念。 自定义结构体: struct weapon{ char name[20]; int atk; int price; }; 它是"weapon"型(类似于我们熟知的int型,String型等),里面有一个...
  • 结构体变量初始化和赋值

    千次阅读 2015-05-05 14:44:45
    下面是一段结构体变量初始化和赋值的小程序:#include struct Student { int age; float score; char sex; }; int main(void) { //定义并赋值称之为初始化 struct Student st1 = {80, 66.0F, 'F'}; //定义...
  • 了解结构体变量的引用之后,下面演示一下如何定义后再初始化 #include<stdio.h> #include<string.h> struct AGE { int year; int month; int day; } struct STUDENT { char name[20]; int num; ...
  • 结构体变量初始化-定义时初始化

    千次阅读 2019-05-28 07:39:34
    一般情况下我们都是在定义的时候对他进行初始化,因为那样比较方便,如果定义之后再进行初始化,那就只能一个一个成员进行赋值,就如同数组一样,数组只能在定义的时候才可以一次性对所有元素进行初始化,如果定义...
  • 我们在定义数据时,当需要定义多个变量时,可以将多个变量定义为一个结构体。结构体变量可以作为函数的形参。例如如下函数: void function1(stuVar1 *stuIn,)
  • 【C语言】结构体变量初始化方法

    千次阅读 2019-07-07 17:08:03
    结构体变量初始化方法 1.定义结构体变量并同时对其初始化 这里介绍三种方法: 顺序法 乱序法 C++风格的乱序 struct student { int score; const char *name; } 1.1 顺序法 按照结构体成员的声明顺序进行初始...
  • 上一篇文章:返回指针值的函数+指向函数的指针+... 结构体引例结构体变量的定义结构体变量的使用结构体变量作为函数参数结构体变量初始化 下一篇文章 结构体 引例 输出平均分最高的学生信息 #include &...
  • 结构体变量初始化和引用 任务描述 本关任务:从键盘输入两个学生的学号,姓名和成绩(整数),分别存入结构体中,输出成绩较高的学生的学号,姓名和成绩。 相关知识 结构体类型用于描述由多个不同数据类型的数据...
  • 定义全局结构体变量初始化后出错 求大佬~
  • /*3结构体变量初始化和使用*/ #include #include using namespace std; struct Student //学生信息结构体 { int num;//学号 char name[20];//姓名 float english;//英语 float math;//数学 float history;/...
  • 结构体变量初始化定义时初始化定义之后初始化 结构体白能量的初始化方式有两种,可以在定义的时候或定义之后对结构体变量进行初始化。 定义时初始化 一般情况下我们都是在定义的时候对它进行初始化,因为那样比较...
  • C++ 结构体初始化与赋值

    万次阅读 多人点赞 2016-05-30 13:28:57
    1.CC++结构体初始化今天看到项目中对自定义结构体初始化方式有点陌生,特在此罗列一下可用的结构体初始化的方式。对结构体struct A { int b; int c; }有几种初始化方式:第一种:struct A a = { .b = 1, ...
  • 结构体初始化

    2016-06-15 11:15:42
    结构体的初始化方式有多种,还有结构体数组的初始化,虽然好多平时用不到,但还是有必要了解一下。 1.结构体初始化 ...定义一个结构体变量初始化方法有:  struct Student stu1 = {1, "Lily", 80};  s
  • 虽然已经了解结构体类型,但是结构体类型变量的定义只有一种方法么,这个当然不是的,所以我把我所知道的几种方法列出来供给大家参考一下;  首先是第一种,也是我们经常用的一种: 1 #include <stdio.h>...
  • C_结构体变量初始化

    千次阅读 2018-05-25 11:34:14
    C_结构体数组 #include &amp;lt;stdio.h&amp;gt; void main() { struct student /*定义结构*/ { int num; char *name; char sex; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 141,677
精华内容 56,670
关键字:

结构体变量初始化