首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中构造体的直接赋值

2012-09-03 
C语言中结构体的直接赋值一直记得C语言中,结构体是不可以直接赋的。我问了三个同学,都说在C中可以,在C语言

C语言中结构体的直接赋值

一直记得C语言中,结构体是不可以直接赋值的。我问了三个同学,都说在C++中可以,在C语言中不可以,需要逐一成员赋值或者用memcpy函数。

我测试了一下如下的程序:

#include <stdio.h>#include <stdlib.h>struct test{        int a;        int b;        char ss[10];};int main(){        struct test t1 = {1, 2, "hello"};        struct test t2;        t2 = t1;        printf("%d, %d, %s\n", t2.a, t2.b, t2.ss);        return 0;}


答案是可以直接赋值的。

上网上看了以下,找到一个讨论的帖子,有一些错误或正确的讨论:http://topic.csdn.net/u/20070627/15/a6b39dfa-2ab9-473e-96c3-4054800cb4c1.html

不过里面要是有指正成员,进行了动态分配,指向了某一块内存,那么赋值的时候要注意,不能简单的直接赋值了。


热点排行