精华内容
下载资源
问答
  • C语言结构体赋初值

    千次阅读 2019-10-25 11:21:36
    C语言结构体赋初值 旧的C标准不支持在定义结构体的时候赋值,例如VS2010和VC++6.0 之前我发现我写的在VS2019上运行正常的程序复制到VC6上就报错,一方面是因为旧的C标准不支持一些新函数比如scanf_s和get_s,另一...

    C语言结构体赋初值

    旧的C标准不支持在定义结构体的时候赋值,例如VS2010和VC++6.0
    之前我发现我写的在VS2019上运行正常的程序复制到VC6上就报错,一方面是因为旧的C标准不支持一些新函数比如scanf_s和get_s,另一方面是某些特性改变了,比如旧的C标准不支持在定义结构体的时候赋值,在定义结构体的时候并没有分配空间,所以会报错
    比如下面这样就会报错:

    typedef struct student{
    	int number = {'\0'};
    	char name[7] = {'\0'};
    }Stu;
    

    而在VS2019中就不会报错;
    但是不是说一定不能赋初值了,还阔以使用构造函数
    如下

    typedef struct student{
    	int number;
    	char name[7];
    	struct student()
    	{
    		char str[7]={'a','b','b','i'};
    		number = 100;
    		strcpy(name,str);
    	}
    }Stu;
    

    构造函数使结构体在创建的时候能够自动初始化,这样就达到了赋初值的效果
    (与之对应的还有析构函数,在程序结束的时候自动销毁结构体
    如果自己不定义的话编译器是会自动提供构造函数和析构函数的)

    展开全文
  • 源码: // // Created by kangs on 2020/9/2. // #include <stdio.h> struct Books { char title[50]; char author[50];...} book = {"C 语言", "NOWCODER", "编程语言", 123456};... printf("title : %s\n

    源码:

    //
    // Created by kangs on 2020/9/2.
    //
    
    #include <stdio.h>
    
    struct Books
    {
        char  title[50];
        char  author[50];
        char  subject[100];
        int   book_id;
    } book = {"C 语言", "NOWCODER", "编程语言", 123456};
    
    int main()
    {
        printf("title : %s\nauthor: %s\nsubject: %s\nbook_id: %d\n", book.title, book.author, book.subject, book.book_id);
    }
    

    执行结果:

    title : C 语言
    author: NOWCODER
    subject: 编程语言
    book_id: 123456
    
    Process finished with exit code 0
    
    展开全文
  • C语言中对结构体赋初值

    万次阅读 2015-11-05 13:07:27
    C 语言中结构体赋初值,可以对指定元素赋值,不必按照顺序,前提是通过 "." 来操作,在 c-free 5.0版本下验证通过。#include typedef struct{ int a; char b; float c; }structTest1; int main(int argc, char...
    C 语言中结构体的赋初值,可以对指定元素赋值,不必按照顺序,前提是通过 "." 来操作,在 c-free 5.0版本下验证通过。
    <pre name="code" class="cpp">
    #include <stdio.h>
    typedef struct{
    	int a;
    	char b;
    	float c;
    }structTest1;
    int main(int argc, char *argv[])
    {
    	structTest1 st1 = {
    		.b = 'A',//赋值的时候,可以用 "." 对指定元素赋值,不必按照原来的顺序
    		.c = 10.1,
    		.a = 100		
    	};
    	printf("a=%d\r\nb=%c\r\nc=%f\r\n",st1.a,st1.b,st1.c);
    	return 0;
    }

    
    

    执行的结果:


    展开全文
  • 就是会出现图中的这种情况,不知道怎么解决。 我用的vs2013![图片说明](https://img-ask.csdn.net/upload/201704/30/1493560403_778726.png)
  • 结构体 一、什么是结构体: 1、不同类型的变量集合被称为结构体 2、结构体的目的是为了描述一个对象,为了把一个对象描述清除必须要所出这个对象的很多属性,而为了表示这些属性就要用到不同的变量,而且变量不止一...

    结构体

    一、什么是结构体:

    1、不同类型的变量集合被称为结构体
    2、结构体的目的是为了描述一个对象,为了把一个对象描述清除必须要所出这个对象的很多属性,而为了表示这些属性就要用到不同的变量,而且变量不止一个。

    二、如何来定义结构体:

    1、定义结构体
    格式:

    struct 结构体{
    	属性列表 
    };
    

    比如:定义一个结果体,目的是为了描述一个工人

    struct worker {
    	char id[10];
    	char name[10];
    	char sex[10];
    	int pay;	
    }
    

    2、如何来定义结构体变量

    1)上方那样定义的只是结构体的类型,并不是变量

    比如:

    int a;//其中int 是类型  而a是变量
    

    2)在C程序里面有几种类型是C已经为我们做好的,我们只要拿来使用就行了,但是结构体类型在C程序里面没有,就需要用户自己来定义。

    3)下方程序当中struct worker是定义的类型

    struct worker {
    	char id[10];
    	char name[10];
    	char sex[10];
    	int pay;	
    }
    

    在这里插入图片描述

    4)定义结构体变量有三种方式
    (a)在定义类型的时候就定义结构体变量,这样的变量就相当于全局变量。
    (b)在定义结构体类型之后,再定义结构体变量。
    (c)可以在定义结构体类型 的时候,省略结构体类型名 (一般不用)

     struct {//定义结构体类型 
    	char id[10];//定义工号
    	char name[10];//定义姓名
    	char sex[10];//定义性别
    	int pay;//定义基本工资
    },wi,w2;//此处的分号不能少
    

    (d)可以通过typedfed这个关键字,为结构体变量取别名别名一般用大写

    在这里插入图片描述

    三、如何给结构体变量赋初值

    在这里插入图片描述

    四、如何来输出结构体变量的值

    1、由于结构体变量里面会包含有很多的属性,所以在输出时,一定要分别输出,不能整体输出
    2、结构体变量名.成员

    #include<stdio.h> 
    typedef struct worker{//定义结构体类型 
    	char id[10];//定义工号
    	char name[10];//定义姓名
    	char sex[10];//定义性别
    	int pay;//定义基本工资
    }WOR;//此处的分号不能少
    void main(){
    	WOR w1={"0001","狄文杰","男",1200},w2={"0002","张三丰","女",500},w3;//w1和w2它们的属性相同但是属性值不相同。 
    	printf("%s,%s,%s,%d",w1.id,w1.name,w1.sex,w1.pay);//只能够分别输出不能够整体输出 
    } 
    

    在这里插入图片描述
    以下赋值方式也是可以的

    
    //一个一个的将w1的值赋值给w3 
    	w3.id=w1.id;
    	w3.name=w1.name;
    	w3.pay=w1.pay;
    	w3.sex=w1.sex;
    

    3、结构体变量虽然不能整体输出,但是可以整体赋值
    在这里插入图片描述

    
    
    展开全文
  • 最近看到了结构体指针的内容,发现未赋初值结构体指针的特性很有意思,做一个文档记录一下。 首先看如下代码 #include <stdio.h> #include <cstdlib> #include <cstring> int main() { struct...
  • C++的类与C语言结构体比较 一、结构体,类的介绍 1.C语言的结构体 由于普通数据分配内存不集中,寻址效率不高,而且对数组赋初值时容易发生错位,结构零散不易管理。 所以诞生了结构体这一种数据类型,它由若干成员...
  • struct Student{ long num; char name[20]; }; 1、指向结构体变量的指针 int main() { struct Student stu; struct Student * p;... //stu可以直接使用,但是p必须赋初值 //stu.name = "gao
  • !...上面的赋值是写在一个头文件里的,用VS2008,或者VC++6.0调都会出现上面的错误,VS2013和DEV就不会报错。 完整代码是: ...一定要把给结构体数组赋初值放到main函数里面吗? 学生党一枚,请各位大大们帮忙!
  • 其他语法3.1定义结构体并同时定义结构体变量3.2 定义结构体并同时定义结构体变量并赋初值 1. 结构体是什么? 数组是一个有顺序,并且类型相同的一组数据的集合,那么如果我们想把几个类型不同...
  • C语言结构体

    2017-05-05 21:17:29
    结构体定义的时候不能赋初值;struct ours{ int num=100; //编译报错 int num; char str[100]; }2.结构体中字符串赋值方式void main(){ struct ours o1={100,"hello china"}; struct ours o2=01; //结构体整体...
  • 我是c语言小白,想构建一个三维结构体动态内存的函数时遇到rt问题,代码如下: struct U ... 并且,在开始创建动态空间时,如果不赋初值就不会报错,诚问各位大神这是哪里出错了,该如何修改,谢谢。
  • **编写程序,程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数show的功能是输出这位学生的信息。 ** #include <stdio.h> typedef struct { int num; char name[9]; char sex; ...
  •  近期,我阅读了某新员工小刘写...例如以下的代码演示样例: 如上代码所看到的,tEmployeeInfoSrc和tEmployeeInfoDest是两个类型同样的结构体变量,tEmployeeInfoSrc(源结构体变量)中的各个成员变量已赋初值。现...
  • 结构体是在C语言中用户自定义的变量类型,它可以由若干个类型的变量组成。结构体变量、结构体数组常用于对多个包含多项属性的成员的处理。 设计程序统计得票是对结构体的简单应用,代码...//定义结构体数组join并赋初值
  • 文章可能比较长,如果想仔细了解结构体知识的话请大佬们耐心看完。 文章目录一、结构体基本使用二...1.正常结构体定义时不能赋初值; struct Person { char name[64]; //int age = 50;//定义时不能赋初值,只有使...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

c语言结构体赋初值

c语言 订阅