❶ c語言,結構體數組怎麼初始化
對於數組元素很多的初始化可以使用初始化列表方法。在c語言中用於進行初始化的程序結構則稱為初始化器或初始化列表。
1、初始化器
初始化器是聲明器的可選部分,它由一個'='以及其後的一個表達式(或含有多個以','隔開的帶圓括弧表達式的單一列表)所組成。後面這一列表有時也被稱為「初始化(器)列表」(initializer list)或」初始化列表」(initialization list)。
例:
public class Curry
{public string MainIngredient { get; set; }
public string Style { get; set; }
public int Spiciness { get; set; }}
2、初始化列表
一個類/結構的構造函數可以在定義中於構造函數體前包含一個初始化列表,用以給類/結構的元素賦初值。
例:
class foo
{public:
foo(string s, int i):name(s), id(i){} ; // 初始化列表
private:
string name ;int id ;};
(1)c語言總結結構的初始化擴展閱讀
在程序里,數據初始化也可能在沒有由明確的語法來實現的情況下進行。例如說,如果一個靜態變數在沒有初始化(即未指定初值)的情況下被聲明,則:對於原生數據類型:以對應類型的零值進行初始化;對於類中的靜態對象:由其默認的構造函數來進行初始化。
每一個初始化部分裡面的代碼在程序運行後,或庫的begin-end塊運行之前。delphi使用對單元相關樹的深度優先遍歷來運行初始化部分。換句話說,就只在一個單元的初始化代碼運行前,delphi就運行了特他使用的每一個單元的初始化部分。每一個單元僅初始化一次 。
❷ c語言結構體初始化
你已經定義了一個mem1,下一句又定義了一個mem1,所以它會提示你多次定義了,應該把第二個struct Mem去掉吧
❸ C語言結構體初始化問題
這個結構體中包含三個變數,num
name[20]
c
你的結構體初始化只初始化了
name[20]
其餘倆個變數沒有初始化,所以會報錯
你可以這樣初始化
struct
wo
b(1,"jack",'m');
要注意對結構體中所有變數都要初始化,除非這個變數有預設值
❹ C語言結構體初始化操作是什麼意思
定義變數的同時給變數賦值
即為變數的初始化,例如:
int
year
=
2003;
結構體
也類似的啦,
struct
BOOK
{
char
name[100];
float
price;
};
struct
BOOK
book_1
=
{"C語言",
25.0};
❺ C語言結構體初始化(在線,等!)
data2={2,8};直接這樣是肯定不對的
struct complex data2={2,8};這樣本來是對的,但是前面你已經有了這個變數了,相當於定義兩次,這在C語言中是不允許的
❻ 一個C語言結構初始化的問題
你在初始化這個結構體時,使用的的語句是.num="Disk drive",.number=10,"Jack"。這樣一來結構體part1中的num成員和number成員都已經被正確賦值,剩下的成員on_hand是int類型的,而"Jack"是字元串類型,自然無法賦值給on_hand,系統默認會將int類型的on_hand置為0。
另外,你在輸出時順序是number,num,on_hand,所以運行結果第一行是10,第二行是Disk drive,第三行是0。
❼ C語言結構體里的結構體怎麼初始化
中間又有結構體嵌套,你的格式應該是{{
..{}..},{..{}..},...}
其實一般不這么初始化,定義全局靜態變數或者指針,指針的話通過malloc分配內存,然後通過->訪問結構體成員,靜態變數的通過.訪問成員,然後賦值。
❽ c語言,結構變數初始化
#include<stdio.h>
#include<string.h>
structstudent
{
charname[10];
intage;
structstudent*next;
};
voidmain()
{
structstudent*header,*p;
structstudentc={"qianfeng3",20,NULL};//只有在定義結構體變數時,才能進行數據初始化賦值,且abc三個的順序要這樣寫,因為有&c&b的變數取地址操作,所以,要先有定義,才能使用變數
structstudentb={"qianfeng2",19,&c};
structstudenta={"qianfeng1",18,&b};
p=&a;
while(p)
{
printf("%s,%d ",p->name,p->age);
p=p->next;
}
}
❾ C語言結構體數組的初始化
同學,你注意到了Create()函數裡面,你又定義了一句:
Listpr;
了么?這句話時關鍵,首先,你在main 函數(我猜應該是main吧)中寫道:
Listpr1=Creat("p1",2,1);
Insert(&pr1);
看,你這個pr1是個局部變數吧?只在main()中有效的。而你上面那個Create中定義的呢?也是個局部變數,只在Create()中有效。所以,即使你在Create()中費勁全力為pr賦值。等調用完Create()後,pr還是會消亡的,回到main,時,這里的pr1就是另一個List變數了。
總而言之,Creat()裡面的pr和main()裡面的pr1是完全不同的兩個變數。要想讓他們變成一個變數。可選用指針傳參。或者定義成全局變數。
另外,我一看到你的描述的那個「燙」字,就知道你用的是VC6.0吧?呵呵