精华内容
下载资源
问答
  • 结构体对象使用malloc初始化时候有办法直接对结构体变量赋值吗?
  • 结构体变量赋值给同类型的结构体变量     备注:程序遗漏返回值(可以正常编译),代码最后需要加return 0;。...

                                                                    结构体变量赋值给同类型的结构体变量

     

     

    备注:程序遗漏返回值(可以正常编译),代码最后需要加return 0;。

    展开全文
  • 结构体变量赋值

    2020-02-22 15:21:51
    结构体内变量赋值暂且分为三种(笔者此时只能想到三种) 1.定义时赋值 2.定义后变量挨个赋值 3.利用函数进行赋值 赋值时再分为两类 1.非数组赋值 2.数组赋值 1.比较简单,在此不做过多介绍,只是简单贴下代码。 ...

    结构体内变量赋值暂且分为三种(笔者此时只能想到三种)

    1.定义时赋值

    2.定义后对变量挨个赋值

    3.利用函数进行赋值

    赋值时再分为两类

    1.非数组赋值

    2.数组赋值


    1.比较简单,在此不做过多介绍,只是简单贴下代码。

    
     
    1. struct student{
    2. char name[];
    3. int age;
    4. }b;
    5. int main(){
    6. struct student a = { "LiMing", 10};
    7. }

    2.1

    定义后对变量挨个赋值-非数组赋值

    
     
    1. struct student{
    2. int age;
    3. double hight;
    4. }b;
    5. int main(){
    6. b.age = 12;
    7. b.hight = 184.0;
    8. printf( "%d %f\n",b.age,b.hight);
    9. system( "pause");
    10. }
    直接赋值即可。


    2.2

    定义后对变量挨个赋值-数组赋值

    C语言中规定数组初始化时可以赋值,但初始化之后再赋值是不合法的.

    比如

    char a[10] = "asdad";
    
     
    这是合理的。

    
     
    1. char a[ 10];
    2. a[ 10] = "1234";
    这是不合理的

    但是可以对其单个进行赋值

    例:

    
     
    1. int i[10];
    2. i[1] = 1;

    因此结构体中内数组赋值可以用单个元素赋值方法进行赋值

    但此种方法过于繁琐 因此笔者看过很多大神用地址的方法进行赋值

    方法如下(此方法只适用于字符数组,其他数组请用单个元素赋值方法

    
     
    1. struct student{
    2. char *name;
    3. int age;
    4. double hight;
    5. }b;
    6. int main(){
    7. b.name = "LiMing";
    8. b.age = 12;
    9. b.hight = 184.0;
    10. printf( "%s %d %f\n",b.name,b.age,b.hight);
    11. system( "pause");
    12. }


    3.利用函数进行赋值
    (需引入string.h头文件,此时字符数组不必是地址)
    内部函数的调用

    
     
    1. #include <string.h>
    2. struct student{
    3. char name[ 10];
    4. int age;
    5. double hight;
    6. }b;
    7. int main(){
    8. strcpy(b.name, "LiMing");
    9. b.age = 12;
    10. b.hight = 184.0;
    11. printf( "%s %d %f\n",b.name,b.age,b.hight);
    12. system( "pause");
    13. }

    外部函数的调用

    
     
    1. struct student{
    2. char *name;
    3. int age;
    4. double hight;
    5. }b;
    6. void f( struct student *p){
    7. p->name = "LiMing";
    8. p->age = 12;
    9. p->hight = 184.0;
    10. }
    11. int main(){
    12. f(&b);
    13. printf( "%s %d %f\n",b.name,b.age,b.hight);
    14. system( "pause");
    15. }

    有点类似链表。
    展开全文
  • 结构体变量赋值 #include <stdio.h> #include <string.h> struct student { char name[20]; int age; }; int main () { struct student st1 = {"abc", 30}; struct student st2; st...

    结构体变量赋值

    #include <stdio.h>
    #include <string.h>
    
    struct student 
    {
        char name[20];
        int age;
    };
    
     int main () 
    { 
        struct student st1 = {"abc", 30};
        struct student st2; 
        st2 = st1; //结构体变量的赋值,赋值就是内存拷贝
       // memcpy(&st2, &st1, sizeof(st1));
        printf("%s, %d\n", st2.name, st2.age);
    
       return 0;
    }
    
    

    输出结果:
    在这里插入图片描述

    展开全文
  • 以前在使用结构体时没有在结构体变量之间直接赋值,今天同事在查看别人的代码时,发现有两个结构体变量直接赋值的语句当时感觉这个语句不对,认为在一个结构体里边,既有一般的无符号整形与数组,因为数组的赋值是不...
    以前在使用结构体时没有在结构体变量之间直接赋值,今天同事在查看别人的代码时,发现有两个结构体变量直接赋值的语句当时感觉这个语句不对,认为在一个结构体里边,既有一般的无符号整形与数组,因为数组的赋值是不能直接赋值,要内存拷贝,从这里推理所以认为这个语句不对。于是问了一下,我当时以为是结构体指针变量的赋值,认为没有问题。还和同事争论了一番,当他让我看源代码时,发现是变量间的直接赋值,下意识中的判断是不对,原因就和之前他理解的一样。

    于是晚上到住处在网上查了一下,说是可以的,因为是同样的数据类型,而C语言在相同类型的变量间赋值时是直接内存复制的,即将他们的内存进行复制,这里因为同样结构体变量,属于同一种变量,所以赋值时是按照他们的内存分布来直接拷贝的。
    同时敲了一段很简单的代码测试一下,看到底是为什么。发现确实是这样。那么C语言在变量间的赋值是如何进行的呢?

    再查找发现在C中一个变量名其实就是一个地址对应着一块内存的起始地址,赋值操作符就是找到这块内存的起始地址。

    网上一个关于结构体变量复制的帖子
    #include

    typedef struct
    {
         unsigned char a;
         unsigned char b;
         unsigned char c;
         unsigned char d[10];
    }TestStruct;

    int main(void)
    {
         TestStruct a = {0};
         TestStruct b = {0};

         a.a = 1;
         a.b = 2;
         a.c = 3;
         a.d[2] = 5;

         b = a;

         printf("a.a:%d \n a.b:%d \n a.c:%d \n a.d[2]:%d \n", a.a, a.b, a.c, a.d[2]);

         printf("b.a:%d \n b.b:%d \n b.c %d \n b.d[2]:%d \n", b.a, b.b, b.c, b.d[2]);

         return 0;

    }

    展开全文
  • Go语言通过反射用字符串字段给结构体变量赋值理解reflect的使用 我们知道给一个结构体变量直接赋值可以直接写死 a := struct { name string age int }{ name: "haha", age: 1, } a.name = "hahaha" **...
  • C语言 结构体变量赋值

    千次阅读 2019-05-30 17:08:24
    typedef struct { u16 year; u8 month; u8 day; ...1)C语言中,在相同类型的变量间赋值时是直接内存复制的;...2)两个同类型的结构体变量属于同一种变量; 3)如果结构体内含有指针,注意拷贝的深度;
  • 1 同一结构体变量互相赋值 #include <stdlib.h> #include <stdio.h> typedef struct persons { char name[21]; int age; }persons; void main() { persons psn = {"桓修",46}; persons psn2=psn...
  • 结构体变量赋值及成员引用

    千次阅读 2018-03-19 20:05:45
    #include&lt;stdio.h&gt;#include&lt;string.h&gt;struct person{ char name[12]; int age; char sex; float height; float weight;...int main(void){ struct person p1={"... prin...
  • 最近遇到一个问题,在全局的结构体变量进行赋值之后,再读取其中内容的时候发现在Debug下是正常的,在Release下不正常。 下面这个代码是可以重现这个问题的:一个全局的结构体变量,在主函数中它进行赋值,然后...
  • 今天遇到了一个很奇怪的写法,对于成员为二维数组的结构体,声明时通过多加一对大括号其中的成员,即二维数组进行了赋值,感觉怪怪的。如果有多个成员那这样怎么确定是在给数组赋值,也没有取到m,而且还多了一对...
  • 一:在子线程中调用主线程中定义的结构体变量: 1.首先,在子线程中定义一个结构体指针; 2.在主线程的构造函数中,将需要的主线程结构变量赋值给子线程函数; 1)需要赋值的变量 2)变量赋值(注意,子线程需要先...
  • #include #include #include struct student { int number; }num; int main() { struct student s1, *s2; s2 = &s1; FILE *fp = fopen("test.txt", "r"); fscanf(fp, "%d", s2->number);...
  • c语言中结构体类型变量类型,结构体变量赋值 这几天看图用领接表存储图时候,开始实现的时候发现结构体的变量名赋值有些疑惑,疑惑的地方查了下,留做备份 //此声明声明了拥有3个成员的结构体,分别为整型的a,...
  • 近期,我阅读了某新员工小刘写的C语言代码,发现其对结构体变量之间的赋值不是非常熟悉。对于两个同样类型的结构体变量,他均採用的是逐个成员变量直接赋值的形式。例如以下的代码演示样例: 如上代码所看到的,...
  • 结构体变量赋值

    千次阅读 2014-07-25 09:52:33
    以前在使用结构体时没有在结构体变量之间直接赋值,今天同事在查看别人的代码时,发现有两个结构体变量直接赋值的语句当时感觉这个语句不对,认为在一个结构体里边,既有一般的无符号整形与数组,因为数组的赋值是不...
  • C语言中结构体直接赋值

    万次阅读 多人点赞 2018-10-21 10:47:29
    先说结论:一般来说,C语言中的结构体变量可以用另一个变量其进行赋值或初始化。简单结构体(不包含指针成员)直接赋值没有问题。 我们先下面一段代码: 1 2 3 4 5 6 7 8 .....
  • C语言对结构体进行赋值操作一、说明二、环境三、代码四、运行 一、说明 定义一个结构体: 并其进行初始化操作,赋值操作,打印 1.注意, struct 定义的位置可以在main函数的外边 2.用的时候是 struct student ...
  • 为此,C提供了结构体变量提高表示数据的能力,它能让你创造新的形式。 1、结构体的定义 struct book { char title[40]; //书名 char author[40]; //作者 float price; //单价 }; 在结构体声明中,用一对...
  • 描述结构体(struct)是...结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,885
精华内容 39,554
关键字:

对结构体变量赋值