當前位置:首頁 » 編程語言 » c語言結構體賦值可以用嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言結構體賦值可以用嗎

發布時間: 2023-08-21 20:09:36

『壹』 在C語言中.結構體變數之間可以相互賦值嗎

結構體變數直接賦值,就是其本身內存地址空間,按照地址分布直接賦值。
所以兩個一樣的結構變數可以直接賦值。
但是如果結構成員中有指針,且指針指向的地址大小不一樣,是不能直接賦值的。

『貳』 結構體什麼時候可以直接賦值C

在聲明的時候和後續賦值略有不同,在C語言中是兩種處理方法。
如果有結構體
struct test
{
int a;
char c;
int b;
};
定義的時候,可以
struct test var = {1,'c', 2};
這樣初始化,結果為var.a = 1, var.c = 'c', var.b = 2;
但是如果後續賦值
var = {1,'c', 2};
就會報錯。因為在C語言中不支持這種形式的操作。
不過可以取巧轉換一下,改成
var = (struct test){1,'c', 2};
這樣就可以了。 在這種情況下,系統會申請一個臨時變數,並初始化為該值,再對var進行賦值。而同類型結構體之間賦值操作是C語言規則允許的。