精华内容
下载资源
问答
  • 2019-05-30 17:08:24
    typedef struct
    {
      u16 year;
      u8 month;
      u8 day;
      u8 hour;
      u8 minute;
      u8 second;  
      u8 reserved;
    } utc_time_t;
    
    utc_time_t time1;
    utc_time_t time2;
    utc_time_t * p_time;
    
    time1.year = 2019;
    time1.second = 55;
    
    p_time = &time1;
    
    time2 = time1;  //合法
    time2 = *p_time;  // 合法
    
    
    
    1)C语言中,在相同类型的变量间赋值时是直接内存复制的;
    2)两个同类型的结构体变量属于同一种变量;
    3)如果结构体内含有指针,注意拷贝的深度;
    
    更多相关内容
  • 结构体变量赋值

    千次阅读 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. }

    有点类似链表。
    展开全文
  • 结构体变量赋值给同类型的结构体变量     备注:程序遗漏返回值(可以正常编译),代码最后需要加return 0;。...

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

     

     

    备注:程序遗漏返回值(可以正常编译),代码最后需要加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;

    }

    展开全文
  • 结构体变量赋值 #include <stdio.h> #include <string.h> struct student { char name[20]; int age; }; int main () { struct student st1 = {"abc", 30}; struct student st2; st...
  • 一、结构体变量之间的赋值、 二、完整代码示例
  • 分两种情况来讨论 1、枚举类型定义在结构体外 ...//定义结构体 typedef struct { int FlashTime; enum Flash status; }sLED; int main() { sLED LED; LED.FlashTime = 300; LED.status = AlwaysOn; ret
  • 今天看代码时发现了一种结构体变量赋值方法(c语言),但是在c++中我测试没通过(2012-06-05 05:31:03)标签:c语言测试结构体杂谈今天看代码时发现了一种结构体变量赋值方法(c语言),但是在c++中我测试没通过在看...
  • 一:在子线程中调用主线程中定义的结构体变量: 1.首先,在子线程中定义一个结构体指针; 2.在主线程的构造函数中,将需要的主线程结构变量赋值给子线程函数; 1)需要赋值的变量 2)变量赋值(注意,子线程需要先...
  • C语言对结构体进行赋值操作

    千次阅读 2021-06-20 09:13:01
    C语言对结构体进行赋值操作一、说明二、环境三、代码四、运行 一、说明 定义一个结构体: 并对其进行初始化操作,赋值操作,打印 1.注意, struct 定义的位置可以在main函数的外边 2.用的时候是 struct student ...
  • 我想问一下将一个结构体成员赋给另一个变量,赋给的是什么值呢? 例如: typedef struct { uint8_t char[]; uint8_t start; uint8_t end; }BUF_T uint8_t temp; temp=BUF_T.end; 我想知道temp里面...
  • 1 同一结构体变量互相赋值 #include <stdlib.h> #include <stdio.h> typedef struct persons { char name[21]; int age; }persons; void main() { persons psn = {"桓修",46}; persons psn2=psn...
  • 含有数组成员的结构体变量之间可以进行赋值,示例如下: #include<stdio.h> #define N 20 typedef struct { char cd[N]; int start; }HCode; int main(void) { HCode hc_arr[20]; HCode hc = {"this ...
  •  近期,我阅读了某新员工小刘写的C语言代码,发现其对结构体变量之间的赋值不是非常熟悉。对于两个同样类型的结构体变量,他均採用的是逐个成员变量直接赋值的形式。例如以下的代码演示样例: 如上代码所看到的,...
  • 2、结构体的目的是为了描述一个对象,为了把一个对象描述清除必须要所出这个对象的很多属性,而为了表示这些属性就要用到不同的变量,而且变量不止一个。 二、如何来定义结构体: 1、定义结构体 格式: struct 结构体...
  • 最近遇到一个问题,在对全局的结构体变量进行赋值之后,再读取其中内容的时候发现在Debug下是正常的,在Release下不正常。 下面这个代码是可以重现这个问题的:一个全局的结构体变量,在主函数中对它进行赋值,然后...
  • 两个结构体变量的相互赋值

    千次阅读 2019-01-04 17:09:55
    下面开始讨论两个结构体变量的类型相同,即同一种类型的结构体赋值 package main import ( "fmt" "encoding/json" ) type Foo1 struct { id int m map[int]string } func main() { //funcName() //...
  • 关于UE4 中结构体 赋值结构体赋值 ** 1, 经典的指令 set ref 当我们对结构体进行赋值的时候, 最常用的指令是 set ref , 使用此指令可以 快读的对 结构体 中的一个单元进行赋值。 但是我们在测试的时候, 此条指令...
  • //这样是错误的,这是全局变量赋值,是错误的。 int main() { return 0; } 例2: int a; a =1; //这样是错误的,这是全局变量赋值,是错误的。 int main() { } 例3: int a ...
  • C语言中结构体直接赋值

    万次阅读 多人点赞 2018-10-21 10:47:29
    在C语言中结构体变量之间可以进行赋值操作吗? 简单结构体的赋值 先说结论:一般来说,C语言中的结构体变量可以用另一个变量对其进行赋值或初始化。简单结构体(不包含指针成员)直接赋值没有问题。 我们先下面一...
  • C语言中结构体直接赋值

    千次阅读 2020-11-05 09:27:41
    在C语言中结构体变量之间可以进行赋值操作吗? 简单结构体的赋值 先说结论:一般来说,C语言中的结构体变量可以用另一个变量对其进行赋值或初始化。简单结构体(不包含指针成员)直接赋值没有问题。 我们先下面一...
  • 结构体变量赋值及成员引用

    千次阅读 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...
  • C语言给结构体指针赋值

    千次阅读 2021-05-21 07:53:44
    《C语言给结构体指针赋值》由会员分享,可在线阅读,更多相关《C语言给结构体指针赋值(6页珍藏版)》请在人人文库网上搜索。1、指向结构体的指针 在C语言中几乎可以创建指向任何类型的指针,包括用户自定义的类型。...
  • 结构体变量之间的比较和赋值原理

    万次阅读 2018-09-08 09:27:25
    结构体变量之间可以直接赋值我想大家都知道了。但结构体变量之间可以做比较吗?答案肯定是不行的,因为比较符号只作用于基本数据类型。如果是用C++或者Java来编程时遇到结构体变量之间的比较,那还好办直接对操作符...
  • 今天遇到了一个很奇怪的写法,对于成员为二维数组的结构体,声明时通过多加一对大括号对其中的成员,即二维数组进行了赋值,感觉怪怪的。如果有多个成员那这样怎么确定是在给数组赋值,也没有取到m,而且还多了一对...
  • 您好,您的问题是不是有点略多,下面一一为您解答:1、typedef char **HuffmanCode 实际上是typedef (char *) *HuffmanCode。写成这种形式更好理解, *...2、*HuffmanTree表示指向结构体HTNode的指针,HTNode是typed...
  • C语言结构体赋值

    千次阅读 2020-09-20 11:54:21
    本文是我在工作中遇到的C语言结构体赋值以及C语言指针问题后的一些总结,希望可以对你有所帮助。 介绍: 先不做讲解,看看下面的代码,大家猜一下打印的值,看大家对C语言结构体赋值结构体指针是不是了解: ...
  • 用实例教你给结构体中数组成员赋值

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,323
精华内容 44,929
关键字:

结构体变量赋值