c/c++ 陣列允許定義可儲存相同型別資料項的變數,但是結構是 c++ 中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。
為了定義結構,您必須使用 struct 語句。struct 語句定義了乙個包含多個成員的新的資料型別,struct 語句的格式如下:
struct type_name object_names;
type_name 是結構體型別的名稱,member_type1 member_name1 是標準的變數定義,比如 int i; 或者 float f; 或者其他有效的變數定義。在結構定義的末尾,最後乙個分號之前,您可以指定乙個或多個結構變數,這是可選的。
當需要處理一些具有多種屬性的資料時,結構往往是很好的選擇。例如
struct id
;
注意:c++對於乙個結構所能包含的變數的個數是沒有限制的,那些變數通常我們成為該結構的成員,他們可以是任意一種合法的資料型別。
在定義了乙個結構之後,就可以使用如下所示的語法來建立該型別的變數了:
id id;
id.name =
"小明"
;id.uid =
"123456789"
;id,*** =
"男";
如果我們在建立乙個結構型別變數的時候就已經知道它各個成員相關的值,我們可以在宣告新變數的同時進行賦值:
id id =
;
建立乙個指向該結構的指標:
id* piddata;
piddata =
&iddata;
我們可以通過對指標進行解引用來訪問相應的變數值
(
* piddata)
.name =
"小明";(
* piddata)
.uid =
"123456789";(
* piddata)
.*** =
"男";
或者可以用第二種方法:
piddata-
>name =
"小明"
; piddata-
>uid <<
"123456789"
; piddata-
>*** <<
"男";
下面以乙個建立檔案的具體例子進行說明:
#include
#include
#include
#include
// 為了使用sleep()函式
using
namespace std;
struct id
;bool
initid()
;bool
readid()
;void
recordid()
;bool
writeid
(id* iddata)
;int
main()
} cout <<
"初始化失敗t_t......\n\n"
;return0;
}bool
initid()
;if(writeid
(&idinit)
==false
) cout <<
"初始化失敗t_t\n"
;else
return
true;}
bool
readid()
cout <<
"\n\n"
; cout <<
" 姓名 "
<<
" 身份證 "
<<
" 性別 "
<<
"\n\n"
;while
(getline
(fileinput, temp)
) std::cout <<
"\n\n"
;return
true;}
else
return
false;}
void
recordid()
else
cout <<
"/n請問需要再次錄入嗎?(y/n)"
; cin >> goon;}}
bool
writeid
(id* piddata)
else
cout <<
"儲存失敗t_t\n"
;return
true
;}
C語言基礎09
指向結構體變數的指標叫做結構體指標 typedef struct student student stu student s1 stu 注意這裡需要使用到 符號來獲取結構變數的位址.結構體指標的寫法 printf s n s1 name 指標結構變數 可以使用指標名稱 元素變數名 printf s ...
python基礎學習筆記09 異常
語法 try 可能發生錯誤的 except 如果出現異常執行的 1.1 捕獲異常 注意 如果嘗試執行的 的異常型別和要捕獲的異常型別不一致,則無法捕獲異常 一般try下方只放一行嘗試執行的 1.2 捕獲指定異常 語法 try 可能發生錯誤的 except 異常型別 如果出現異常執行的 1.3 捕獲多...
Day09 學習CSS基礎
在html的頭部用標籤寫css樣式,裡面定義選擇器定義不同的屬性值 一種選擇器 選擇所以h1標籤 color顏色屬性為red h1style rel stylesheet href css style.css style color yellow 標題h1 哪種方式生效根據就近原則,先執行的會被後執...