【C++學習筆記】型別組合
一、結構
1、建立結構
struct antarctica_years_end
{
int year;
}
2、建立結構的變數
antarctica_years_end s01,s02,s03;
3、使用運算子訪問其成員
s01.year = 1998;
4、建立指向結構的指標
antarctica_years_end * pa = &s02;
5、將該指標設定為有效地址後,使用間接成員運算子來訪問成員
pa->year = 1999;
6、可建立結構陣列
antarctica_years_end trio[3];
7、使用成員運算子訪問元素的成員
trio[0].year = 2003;
8、其中trio是一個陣列,而trio[0]是一個結構,而trio[0].year是該結構的一個成員。由於陣列名是一個指標,因此也可使用間接成員運算子
(trio+1)->year = 2004;
9、可以建立指標陣列
const antarctica_year_end * arp[3] = {&s01, &s02, &s03};
(1)訪問成員
std::cout << arp[1]->year << std::endl;
(2)建立指向上述陣列的指標
const antarctica_years_end ** ppa = arp;
其中arp是一個陣列的名稱,因此它是第一個元素的地址。但其第一個元素為指標,因此ppa是一個指標,指向一個指向const antarctica_years_end的指標。
這種宣告很容易出錯,因此C++11版本提供了auto
auto ppb = arp;
(3)如何使用ppa來訪問資料
std::cout << (*ppa)->year << std::endl;
std::cout << (*(ppb+1))->yera << std::endl;
二、例子
#include <iostream>
struct antarctica_years_end
{
int year;
};
int main()
{
using namespace std;
antarctica_years_end s01, s02, s03;
s01.year = 1998;
antarctica_years_end * pa = &s02;
pa->year = 1999;
antarctica_years_end trio[3];
trio[0].year = 2003;
std::cout << trio->year << std::endl;
const antarctica_years_end * arp[3] = {&s01, &s02, &s03};
std::cout << arp[1]->year << std::endl;
const antarctica_years_end ** ppa = arp;
auto ppb = arp;
std::cout << (*ppa)->year << std::endl;
std::cout << (*(ppb+1))->year << std::endl;
cin.get();
return 0;
}
相關文章
- 組合語言學習筆記組合語言筆記
- C++ Primer Plus 第四章 複合型別 學習筆記C++型別筆記
- Go型別特性-學習筆記Go型別筆記
- 組合數學筆記-排列與組合筆記
- c++基本型別筆記C++型別筆記
- TS學習筆記(一):基本型別筆記型別
- MySQL學習筆記--資料型別MySql筆記資料型別
- JavaScript學習筆記---資料型別JavaScript筆記資料型別
- acm-排列組合學習筆記(更新中)ACM筆記
- MySQL學習筆記:組合索引-最左原則MySql筆記索引
- MySQL學習筆記:組合索引-索引下推MySql筆記索引
- C#學習筆記之值型別與引用型別C#筆記型別
- 組合語言學習筆記(十二)-浮點指令組合語言筆記
- 《組合語言》王爽,學習筆記(子程式呼叫)組合語言筆記
- Python 學習筆記——資料型別Python筆記資料型別
- 【C#學習筆記】型別轉換C#筆記型別
- MySQL學習筆記12:資料型別MySql筆記資料型別
- CUDA 學習筆記之型別轉換筆記型別
- C++學習筆記C++筆記
- 演算法學習筆記(16): 組合數學基礎演算法筆記
- 演算法學習筆記1語法 (C++組)演算法筆記C++
- Accelerated C++學習筆記--組織程式和資料C++筆記
- (Java學習隨堂筆記)二維陣列、泛型、類的組合、模板方法設計模式、介面、型別轉換Java筆記陣列泛型設計模式型別
- 【演算法學習筆記】組合數與 Lucas 定理演算法筆記
- C#設計模式學習筆記:(9)組合模式C#設計模式筆記
- 【HeadFirst設計模式學習筆記】10 組合模式設計模式筆記
- JavaScript 型別、原型與繼承學習筆記JavaScript型別原型繼承筆記
- Python學習筆記6——動態型別Python筆記型別
- Redis學習筆記(二)——Redis資料型別Redis筆記資料型別
- Python學習筆記(一) 資料型別Python筆記資料型別
- Python學習筆記(二)——資料型別Python筆記資料型別
- 【Go學習筆記14】嵌入型別(繼承)Go筆記型別繼承
- Linux檔案型別(學習筆記六)Linux型別筆記
- Swift學習筆記(三十四)——函式型別Swift筆記函式型別
- C++學習筆記——003C++筆記
- 泛型學習筆記泛型筆記
- 尹成學院golang學習快速筆記(1)型別Golang筆記型別
- 《c++ templates》學習筆記(3)——第四章,非型別模板引數C++筆記型別