//第四章 陣列
//陣列是一組相同型別元素的集合,注意定義陣列長度的一定要是常量
//int a = 10;
//int arr[a];//這種方法是錯誤的因為a還是乙個變數,只是給它賦值了
1.計算陣列長度:
//int main()
//;// int sc = sizeof(arr) / sizeof(arr[0]);//陣列總長度除以陣列單個元素長度得到陣列元素個數
//}2.一維陣列在記憶體中的儲存
//#include //#include//int main()
//;// int i = 0;
// for (; i < sizeof(arr) / sizeof(arr[0]); ++i)
// // system("pause");
// return 0;
//}//觀察輸出結果,可以看到隨著陣列元素下標的增長,元素的位址遞增。則可知,陣列在記憶體中是連續存放的;
3.二維陣列的建立和初始化
//#include//#include//int main()
//;//三行四列,這樣賦值按照第一行從第一列開始賦值,若完了給第二行第一列賦值,直到賦值完,後面的元素
// //全部為0;
// int i = 0;
// for (i = 0; i < 3; i++)
// // printf("\n");
// }
// system("pause");
// return 0;
//}4.二維陣列的使用
//#include//#include//int main()
//;// int i = 0;
// for (i = 0; i < 3; i++)
// // }
// for (i = 0; i < 3; i++)
// // }
//// system("pause");
// return 0;
//}5.二維陣列在記憶體中的儲存
//#include//#include//int main()
//;// int i = 0;
// int j = 0;
// for (i = 0; i < 3; i++)
// // }
// system("pause");
// return 0;
//}由此可以看出,二維陣列的儲存也是連續的
//***注意:
//關於陣列元素的輸入的一些注意事項
//c語言中用scanf函式輸入字串陣列,取位址符的輸入與否?
//int name[10]=;
//(1)一般變數使用取位址符,是獲取其位址,即為指向該變數的指標;
//(2)陣列名就是陣列的首位址,是指向該陣列的第乙個元素的指標,只不過是常量指標。所以在scanf("%d",name)時不需要再加上取位址符;
//6.陣列作為函式引數
//在我們寫**的時候,會將陣列作為引數傳給某個函式。此時我們只需要將陣列元素的首位址傳遞過去就好啦,所以即使在函式引數部分寫成
//陣列的形式:int arr表示的依然是乙個指標相當於:int* arr
//陣列的應用例項1:三子棋
//陣列的應用例項2:掃=掃雷遊戲
不同型別陣列之間的資料拷貝
工作中,需要將乙個float型別的陣列整體copy到乙個double型別的陣列中。很顯然,memcpy是不行的,因為float和double占用的位元組數不一樣。本來打算用for迴圈乙個乙個元素賦值,但這方法肯定特慢,效率差。不死心,查一查,原來std copy能夠搞定這個問題。舉例說明 doubl...
串列埠傳送不同型別資料方法
模擬串列埠資料傳遞 參考了一些的思路,在此表示感謝 需要注意的是 對於無符號數來說,左移和右移都是用的邏輯移位,即左移低位空出的補0,右移高位空出的補0 對於有符號數來說,用的是算術移位,左移多出的會移進符號位,右移在gcc編譯器下是算術右移,即空出的高位補符號位。詳細可參考此處 c語言 有符號數和...
陣列轉不同型別的集合
定義字串 string str 1,3,6,9,4,2,1,6 擷取字串 string strarr str.split 轉換long型別的陣列 long strarrnum long convertutils.convert idsarr,long.class 陣列轉list string sta...