關於結構體初始化,如何在初始化列表中初始化結構體

時間 2022-10-01 04:00:04

1樓:擦擦設定

這個是有原理的。

簡單說一下吧:

1.要從陣列開始說。

比如int a[10]=;其實系統只是把第一個數賦值為0,其他的數因為沒有引數,系統自動初始化為0,對於int型來說。對於char來說就是『\0x0』。其他的型別類似。

如果是int a[10]=;那麼就是第一個數是1,其他的數是0。就是1,0,0,0.......

2.下面到結構。結構和陣列有點類似;

比如:typedef struct texttext;

如果我寫了text temp=;那麼就可以正常全部初始化成功,引數符合。

如果我寫了text temp1=;那麼就會變成給這個結構固定的引數賦值,這裡是給a賦值,其他的引數類似陣列全部系統自己初始化。

那麼如果寫了text temp2={};?就會變成直接全部系統初始化。具體類似於int a[10]={};

參考資料

可以參考**:

測試平臺:devc++

#include

#include

typedef struct texttext;

int main();

int b[10]=;

int c[10]=;

int i;

for(i=0;i<10;i++)

printf("%d",a[i]);

printf("\n");

for(i=0;i<10;i++)

printf("%d",b[i]);

printf("\n");

for(i=0;i<10;i++)

printf("%d",c[i]);

printf("\n");

text temp=;

printf("%d %f %s\n",temp.a,temp.b,temp.c);

text temp1=;

printf("%d %d %s\n",temp1.a,temp1.b,temp1.c);

text temp2={};

printf("%d %d %s\n",temp2.a,temp2.b,temp2.c);

return 0;}

2樓:牟寰藺醉香

你這裡只定義了一個結構體,但是沒有示例。應改為:

typedef

struct

ledvalue;

struct

ledvalue

ledval=;

3樓:捷冰時蘊涵

data

myvar1=;

如果該域的值是確定的,可以使用常量。

如果希望給域一個預設值,是行不通的。要設定一個變數,必須有對應的指令,不能憑空改變。在c++中這個過程可以在建構函式中實現,而c則不行。

個人觀點,僅供參考!

如何在初始化列表中初始化結構體

4樓:一騎當後

你好,試試這個。

c/c++ code

struct point

};class ctest

private:

int m_icount;

point m_point;

5樓:

c/c++ code

struct point

};class ctest

private:

int m_icount;

point m_point;

6樓:聳錄世界觀

struct a a1 = ;

結構體巢狀結構體怎麼初始化?

7樓:匿名使用者

按你寫的第二個例子

student[0].date.day=10;...

8樓:匿名使用者

student[1].date.day=?;

student[1].date.month=?;

student[1].date.year=?;

其他照就舊

9樓:

你的定義分號打錯地方了吧,呵呵,內部那個結構體

還有一個疑問,你內部的結構體有變數例項嗎?沒有你怎麼賦值啊?

如何對結構體變數進行初始化?

10樓:可兒

結構體初始化可以再定義時制定初始值,如:

struct

student

int num;

char name[20];

} student1 =

;也可以採取申明型別與定義變數分開的形式,在定義變數時進行初始化:

student student1 =

。在c語言中,結構體(struct)指的是一種資料結構,是c語言中聚合資料型別(aggregate data

type)的一類。

結構體可以被宣告為變數、指標或陣列等,用以實現較複雜的資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員(member),且這些成員可以為不同的型別,成員一般用名字訪問。

c語言結構體初始化

11樓:蛆蟲腐屍

你已經定義了一個mem1,下一句又定義了一個mem1,所以它會提示你多次定義了,應該把第二個struct mem去掉吧

12樓:匿名使用者

struct mem mem1=;

變成 mem1=;

估計是vc6.0 把它當做c++來處理了

13樓:

一眼就看出問題了。去掉倒數第三行 mem1 前面的struct mem 就解決了

c++ 結構體初始化的問題

14樓:匿名使用者

第一個問題,不能這樣初始化,需要

inflatable a=;集合中至少需要1個元素方可作為初始化列表,專業會將name、volume、price的所有位元組全部初始化為0。

第二個問題,如果結構體包含有string a;那麼就不能使用初始化列表初始化了。

也就是說

inflatable a=會編譯不成功,因為string類有建構函式,具備有建構函式的成員的結構體不能用=的方式進行初始化。

如何對結構體變數進行初始化?

c語言結構體初始化操作是什麼意思

15樓:veket的小號

定義變數的同時給變數賦值 即為變數的初始化,例如: int year = 2003;

結構體 也類似的啦,

struct book

;struct book book_1 = ;

16樓:匿名使用者

其實結構體如同一個資料型別(整形 字元型。。。),初始化操作是賦予結構體儲存空間的大小,如整形只能儲存4個位元組大小的空間。

c語言memset初始化結構體問題

1.memset函式的原型void memset void s,char ch,size t n 函式的第一個形式引數是指標型別,所以實參因為一個地址,即 a注意 a與a是不同的.a是結構體變數名,而 a是變數a的地址.2.另外memset 是一個庫函式函式,需要加標頭檔案 include 3.正如...

xp系統初始化命令,XP系統初始化命令

要是配置一般的電腦建議用深度或雨木林風。xp系統怎麼初始化?朋友你好 在c盤重灌系統。格式化所有邏輯分割槽,這樣就成了乾淨的電腦系統,沒有任何資訊和應用軟體的邏輯盤。洗完能幫到你。如果電腦自帶恢復軟體的話,直接恢復到出廠設定就好了。如果沒有的話,重灌一下系統吧。比較笨的辦法是把其它分割槽格式化,解除...

磁碟顯示未初始化怎麼辦,磁碟沒有初始化

這種情況多半是硬碟壞了,如果是剛買不久的盤,那儘快聯絡售後。如果硬碟上的資料比較重要,那就得先進行資料恢復。可以先嚐試用軟體進行恢復,如果軟體處理不了,就得找專業人員進行恢復了,情況嚴重的會需要進行開盤恢復資料。硬碟連線後不顯示,說硬碟沒有初始化,未知 1.開始 控制面板 管理工具 計算機管理 磁碟...