1.關於結構體
情況一:最簡單的結構體定義
struct stu;
關鍵字
struct
表明這是在定義乙個結構體,stu是這種資料格式的名稱,因此我們可以像使用char、int等建立變數一樣使用stu建立stu型別的變數了。
情況二:附加"結構體變數」的初始化的結構體定義
struct stushenqinghuai;
相當於
struct stu;
struct stu shenqinghuai;
定義結構後,就可以建立這種型別的變數了:
stu s1;
stu s2;
等。注意:如果是c語言程式設計應該這樣定義
struct stu stu3,
c++允許在宣告結構體時省略關鍵字struct,而
c不可以。
情況三:僅需要使用一次變數的結構體定義
舉例來講,只需要使用乙個學生資訊的時候,可以省略結構體名稱。
struct;
struct stu shenqinghuai;
此時,不能再用這個結構體再定義新的學生結構體變數。
1.1 結構體變數初始化的幾種方法
情況一:宣告時直接初始化
#include#include#include"stdafx.h"
#includeusing namespace std;
struct stu;
struct stu shenqinghuai=;
void main();
即省略等號(=)。
2.如果大括號內未包含任何內容,如:stu stu3 {},則各個成員將被初始化為0,且stu3.no每個位元組被初始化為0。
情況二:結構體陣列初始化
可以建立元素為結構體的陣列,如:stu stud[10],
這樣stud就是乙個stu陣列,其每乙個元素(stud[0], stud[1]等)都是stu物件.
結構體陣列的初始化:
#include#include#include"stdafx.h"
#includeusing namespace std;
struct stu;
struct stu xinxi[3]=,,};
void main();
#include#include#include"stdafx.h"
#includeusing namespace std;
struct test;
//對於陣列和變數同時存在的情況,有如下定義方法:
struct test student[3] =,1},,2},,3}};
void main() mystruct;
語句實際上完成兩個操作:
1)定義結構型別
struct tagmystruct
;
2)typedef為這個新的結構起了乙個名字,叫mystruct。
typedef struct tagmystruct mystruct;
因此,mystruct實際上相當於struct tagmystruct,我們可以使用mystruct varname來定義變數。
3)規範做法:
struct tagnode
; typedef struct tagnode *pnode;
具體可見
附件1:各種資料型別的預設值
資料型別 預設初始化值
int 0
char '\0x0'
float 0.0
double 0.0
char array[n] ""
int array[n]
C語言小結之結構體
一 什麼是結構體?結構體也叫結構,是由一系列具有相同型別或不同型別的資料構成的資料集合。二 結構體的宣告 struct tag variable list 比如描述乙個學生 struct stu 分號不可以丟掉,切記 特殊的宣告 結構體在宣告的時候可以不完全宣告,比如 struct x struct...
c語言小結 結構體
一 宣告結構的形式 1.標準格式 struct message 2.typedef的妙用 參見利用typedef簡化結構體的使用 二 結構體的初始化 1.初始化格式 1.struct message bank 2.struct message bank 2.對結構體內物件的訪問參見 兩種訪問物件的方...
C語言結構體
1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...