大量定義同型別資料的方法 陣列

2021-08-30 17:48:43 字數 1682 閱讀 1486

//第四章  陣列

//陣列是一組相同型別元素的集合,注意定義陣列長度的一定要是常量

//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...