c++結構體

c++結構體

結構體就是一個可以包含不同數據類型的一個結構,它是一種可以自己定義的數據類型,它的特點和數組主要有兩點不同,首先結構體可以在一個結構中聲明不同的數據類型。第二,相同結構的結構體變數是可以相互賦值的,而數組是做不到的,因為數組是單一數據類型的數據集合,它本身不是數據類型(而結構體是),數組名稱是常量指針,所以不可以做為左值進行運算,所以數組之間就不能通過數組名稱相互複製了,即使數據類型和數組大小完全相同。

概念

結構體就是一個可以包含不同數據類型的一個結構,它是一種可以自己定義的數據類型,它的特點和數組主要有兩點不同,首先結構體可以在一個結構中聲明不同的數據類型。第二,相同結構的結構體變數是可以相互賦值的,而數組是做不到的,因為數組是單一數據類型的數據集合,它本身不是數據類型(而結構體是),數組名稱是常量指針,所以不可以做為左值進行運算,所以數組之間就不能通過數組名稱相互複製了,即使數據類型和數組大小完全相同。

使用方法

定義結構體使用struct修飾符,例如:

C++ 代碼

上面的代碼就定義了一個名為test的結構體,它的數據類型就是test,它包含兩個成員a和b,成員a的數據類型為浮點型,成員b的數據類型為整型。

由於結構體本身就是自定義的數據類型,定義結構體變數的方法和定義普通變數的方法一樣。

test pn1;

這樣就定義了一test結構體數據類型的結構體變數pn1,結構體成員的訪問通過點操作符進行,

pn1.a=10 就對結構體變數pn1的成員a進行了賦值操作,

注意:結構體聲明的時候本身不占用任何記憶體空間,只有當你用你定義的結構體類型定義結構體變數的時候計算機才會分配記憶體。

結構體,同樣是可以定義指針的,那么結構體指針就叫做結構指針。

結構指針通過->符號來訪問成員,下面我們就以上所說的看一個完整的例子:

C++ 代碼

//程式作者:管寧

//所有稿件均有著作權,如要轉載,請務必註明出處和作者

#include<iostream>

#include<string>

using namespace std;

struct test;//定義一個名為test的結構體

{

int a;//定義結構體成員a

int b;//定義結構體成員b

};

void main()

{

test pn1;//定義結構體變數pn1

test pn2;//定義結構體變數pn2

pn2.a=10;//通過成員操作符.給結構體變數pn2中的成員a賦值

pn2.b=3;//通過成員操作符.給結構體變數pn2中的成員b賦值

pn1=pn2;//把pn2中所有的成員值複製給具有相同結構的結構體變數pn1

cout<<pn1.a<<"|"<<pn1.b<<endl;

cout<<pn2.a<<"|"<<pn2.b<<endl;

test *point;//定義結構指針

point=&pn2;//指針指向結構體變數pn2的記憶體地址

cout<<pn2.a<<"|"<<pn2.b<<endl;

point->a=99;//通過結構指針修改結構體變數pn2成員a的值

cout<<pn2.a<<"|"<<pn2.b<<endl;

cout<<point->a<<"|"<<point->b<<endl;

cin.get();

}

功能特性

結構體可以描述數組不能夠清晰描述的結構,這是數組所不具備的。

相關詞條

相關搜尋

熱門詞條

聯絡我們