先看下面的**
#include "iostream"
using namespace std;
int main() ;
int hand[4];
hand[4] = ;
hand = cards;
}
執行結果如下:
再看下面這個例子
#include "iostream"
using namespace std;
int main() ;
int hand[4];
//hand[4] = ;
//hand = cards;
float hotel[5] = ;
long totals[3] = ;
short things = ;
cout << "hotel[2], hotel[3], hotel[4] = " << hotel[2] << ", " << hotel[3] << ", " << hotel[4] << endl;
cout << "sizeof things = " << sizeof(things) << endl;
}
執行結果:
從執行結果可以看出來
float hotel[5] = ; 這行**宣告了乙個長度是5的float型別的陣列名為hotel, 並且只初始化了前兩個資料, 後三個預設都是0, 所以c++裡可以使用類似long totals[3] = 這種方式對整個陣列裡的元素進行初始化
另外c++允許short things = ; 不明確宣告陣列的長度, c++編譯器可以根據初始化時候傳入的數值個數來自動確定陣列的長度.
可以省略中間的"="
double score[3];
大括號內可以不寫任何東西, 表示所有資料均為0:
float nums[100]{};
陣列初始化的時候不能把大的資料型別資料賦給小的資料型別的陣列:
long num1 = ;
char num2 ;
char num3 ;
上面三行**第一行3.0是double而陣列是long型的不合要求, 第二行因為123123的範圍超出了char的範圍不合要求, 第三行123是char能表示的數值, 所以沒有問題 《C Primer Plus》學習筆記之 函式
c的設計原則是把函式作為程式的構成模組。函式原型宣告只是將函式型別告訴編譯器,並不是函式的實際實現。ansi c使用函式原型來宣告函式的返回值型別 引數個數以及引數型別,通過這種方式,編譯器可以檢查函式呼叫語句是否和其原型宣告相一致 比如檢查引數個數 引數型別是否匹配 若有引數型別不匹配但都是數值型...
c primer plus復合型別之指標
指標是乙個變數,其儲存的是值的位址,而不是值本身。了解 在討論指標之前,我們先看一看如何找到常規變數的位址,只需對變數應用位址運算子 就可以獲得他的位置,例如 int cups 6 double donuts 4.5 cout cups value 程式輸出 cups value 6 and cup...
c primer plus 復合型別之陣列
編譯器會把陣列名轉換為乙個指標常量,是陣列中的第乙個元素的位址,型別就是陣列元素的位址型別,如 int a 10 陣列名a若出現在表示式中,如int p a 那麼它就轉換為第乙個元素的位址,等價於int p a 0 只有兩種情況下例外 第一種是對陣列名使用sizeof運算子 sizeof a 這將會...