這個程式產生的結果是:
總和是9
陣列元素可以訪問乙個不恆定整數變數:
1
2
3
int
anarray[5];
int
nindex = 3;
anarray[nindex] = 7;
然而,當陣列宣告,陣列的大小必須是乙個常數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int
anarray[5];
// ok -- 5 is a literal constant
#define array_size 5
int
anarray[array_size];
// ok -- array_size is a symbolic constant
const
int
narraysize = 5;
int
anarray[narraysize];
// ok -- narraysize is a variable constant
enum
arrayelements
;
int
anarray[max_array_size];
// ok -- max_array_size is an enum constant
int
nsize = 5;
int
anarray[nsize];
// not ok! -- nsize is not a constant!
總而言之,陣列元素可以被索引與常量或non-constants,但是必須宣告陣列使用常量。這意味著陣列的大小必須在編譯時是已知的!
陣列可以儲存任何資料型別,包括浮點值,甚至結構:
1
2
3
4
5
6
7
8
9
double
adarray[5];
// declare an array of 5 doubles
adarray[2] = 7.0;
// assign 7.0 to array element 2
struct
srectangle
;
srectangle asarray[5];
// declare an array of 5 srectangle
訪問陣列元素的結構成員,首先選擇你想要哪乙個陣列元素,然後使用成員選擇操作符來選擇你想要的成員: 1
2
// sets the nlength member of array element 0
asarray[0].nlength = 24;
字串 大數的乘法(包括浮點數)
一.大數乘法 我們知道,要運算兩個數的乘法,c c 語言裡有專門的運算子 但是當兩個數超過一定的範圍時,用普通的運算子會產生溢位,並不能得到正確的結果。如何進行運算呢?首先,要想儲存乙個大數,用正常的整形或浮點型別是不夠的。所以我們可以採用字串的形式對大數進行儲存,然後編寫演算法,模擬乘法運算過程即...
浮點數記憶體結構
最近比較閒,開始看一些以前的基礎書,回顧一下以前的知識點,這裡分享看 c 反彙編與逆向分析技術揭秘 的一些總結。float型別在向整形型別轉換時,會向零取整,損失精度。浮點數編碼方式 符號 指數 尾數 float 4位元組 32位 1位符號 8位指數 其餘尾數 double 8位元組 64位 一位符...
關於浮點數實際值和預設值
1.1程式如下 1.2.結果如下 預期 1.2f與1.2是相等的,顯示後面的小數應該全是0。實際 1.2f實際是1.2000000476837158 並不是精確的1.2,而1.2f也與1.2不相等。原因 1 float的有效數字只有8個,也就是1.2f輸出20個位時只能保證前8位 1.2000000...