Ⅰ c語言結構體初始化
你已經定義了一個mem1,下一句又定義了一個mem1,所以它會提示你多次定義了,應該把第二個struct Mem去掉吧
Ⅱ c語言結構體初始化!
#include<stdio.h>
#include<string.h>
int main()
{
struct teacher
{
int num;
char name[20];
char sex;
int zonghe;
}sun,wei;
strcpy(sun.name ,"sunxinsheng");
sun.num =10;
sun.sex ='n';
sun.zonghe =20;
printf("sun laoshi de xin xi: %d,%s,%c,%d ",sun.num ,sun.name,sun.sex ,sun.zonghe );
printf("請輸入另一個記錄! ");
scanf("%d,%s,%c,%d",&wei.num,wei.name ,&wei.sex,wei.zonghe );/*你把wei.zonghe改成&wei.zonghe試試*/
printf("swei laoshi de xin xi: %d,%s,%c,%d ",wei.num ,wei.name,wei.sex ,wei.zonghe );
}
Ⅲ c語言怎麼結構數據初始化
C語言結構體類型變數初始化分為 普通變數 和 數組變數 兩種形式,說明如下:
typedefstruct
{
intx,y;
}direction;
directiondir={1,2};//普通變數,用一組{}括起來,成員變數數據間以逗號分隔,按變數定義順序對應數值。未賦值成員,默認填0
directionmove[8]={//數組變數,整體用一組{}括起來,每一個元素按普通變數格式進行書寫,各元素間用逗號分隔。未賦值元素,默認填0
{0,0},{0,1},{1,0},{1,1},
{2,0},{2,1},{3,0},{3,1}
};
Ⅳ c語言如何對結構體某一成員初始化
結構體與類一樣可以定義一個構造函數。
如下:
struct s{
s(){
a=0;
}
int a;
};
每次聲明一個結構體變數時都會調用結構體的構造函數,在構造函數裡面添加初始化語句就可以了
Ⅳ 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 ;};
(5)c語言struct初始化擴展閱讀
在程序里,數據初始化也可能在沒有由明確的語法來實現的情況下進行。例如說,如果一個靜態變數在沒有初始化(即未指定初值)的情況下被聲明,則:對於原生數據類型:以對應類型的零值進行初始化;對於類中的靜態對象:由其默認的構造函數來進行初始化。
每一個初始化部分裡面的代碼在程序運行後,或庫的begin-end塊運行之前。delphi使用對單元相關樹的深度優先遍歷來運行初始化部分。換句話說,就只在一個單元的初始化代碼運行前,delphi就運行了特他使用的每一個單元的初始化部分。每一個單元僅初始化一次 。
Ⅵ C語言結構體初始化問題
#include<stdio.h>
#include<string.h>
#defineNUM4
typedefstructstudent{
intrank;/*學生排名*/
charname[20];/*學生姓名*/
floatscore;/*學生成績*/
}STU;
STUstu[4]={{3,"Tom",89.3f},{4,"Mary",78.2f},{1,"Jack",95.1f},{2,"Jim",90.6f}};
intmain(void){
charnames[10];
inti,flag=1;
while(1){
printf("Entreaname:");
scanf("%s",names);
if(names[0]=='0')//
return0;
for(i=0;i<NUM;i++){
if(strcmp(names,stu[i].name)==0){
printf("name:%s",stu[i].name);
printf("rank:%d",stu[i].rank);
printf("average:%6.2f ",stu[i].score);
flag=0;
continue;
}
}
if(flag)printf("Notfound ");
return0;
}
}
Ⅶ C語言結構體里的結構體怎麼初始化
方法是在定義變數的同時給其一初始值。結構體變數的初始化,遵循相同的規律。
簡單變數的初始化形式如下:
數據類型 變數名=初始化值;
例如,定義整型變數a,並給其初始化值10的語句如下
int a=10;
數組的初始化,需要通過一常量數據列表,對其數組元素分別進行初始化,形式如下:
數據類型 數組名稱〔數組長度〕={初始化值1,初始化值2,…, 初始化值n};
例如,定義長度為5的整型數組,並對其初始化的語句如下:
int A[5]={20,21,0,3,4};
結構體變數的初始化方式與數組類似,分別給結構體的成員變數以初始值,而結構體成員變數的初始化遵循簡單變數或數組的初始化方法。具體的形式如下:
struct 結構體標識符
{
成員變數列表;
…
};
struct結構體標識符 變數名={初始化值1,初始化值2,…, 初始化值n };
例如,定義struct Point類型變數,並初始化的語句如下:
struct Point oP1={0.0,0.2,0.3};
struct Point類型變數oP1的三個成員變數的值分別為
oP1.x=0.0,
oP1.y=0.2
oP1.z=0.3
由於定義結構體變數有三種方法,因此初始化結構體變數的方法對應有三種,上面已經介紹了其中的一種形式,其他兩種形式如下:
struct Point
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3}; struct
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3};
在初始化結構體變數時候,既可以初始化其全部成員變數,也可以僅僅對其中部分的成員變數進行初始化。例如:
struct Student
{
long id;
char name[20];
char sex;
}a= {0};
其相當於a.id=0;a.name=「」;a.sex=『\0x0』。
僅僅對其中部分的成員變數進行初始化,要求初始化的數據至少有一個,其他沒有初始化的成員變數由系統完成初始化,為其提供預設的初始化值。
Ⅷ 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語言結構體初始化操作是什麼意思
定義變數的同時給變數賦值
即為變數的初始化,例如:
int
year
=
2003;
結構體
也類似的啦,
struct
BOOK
{
char
name[100];
float
price;
};
struct
BOOK
book_1
=
{"C語言",
25.0};