數(shù)組在內(nèi)存中的存儲
- 變量的內(nèi)存尋址是從大到小,所以存儲數(shù)據(jù)時會從高字節(jié)開始存儲
- 數(shù)組存儲的和變量相反,元素存儲是從內(nèi)存地址小的開始,但是元素內(nèi)部存儲是和變量存儲一致
- 數(shù)組名就是數(shù)組的地址
值傳遞和地址傳遞
- 基本數(shù)據(jù)類型作為函數(shù)的參數(shù)是值傳遞
// 如果形參是基本數(shù)據(jù)類型祖秒,在函數(shù)中修改形參的值不會影響到實參的值
void change(int value)
{
}
- 數(shù)組名作為函數(shù)的參數(shù)傳遞,是傳遞的數(shù)組的地址
- 因為數(shù)組名就是數(shù)組的地址 &number == &number[0] == number
- 如果數(shù)組作為函數(shù)的形參舟奠,元素的個數(shù)可以省略
// 如果形參是數(shù)組竭缝,那么在函數(shù)中修改形參的值,會影響到實參的值
void change(int values[])
{
}
函數(shù)中計算長度
- 如果數(shù)組作為形參沼瘫,那么在函數(shù)中就不能通過數(shù)組的名稱計算出數(shù)組元素的個數(shù)
- 因為系統(tǒng)會自動將數(shù)組形參轉(zhuǎn)換為指針抬纸,指針占用8個字節(jié)
- 傳遞的是數(shù)組名稱,其實傳遞的是地址
- 如果傳遞的是地址耿戚,其實傳遞的是指針
- 指針在64位編譯環(huán)境占8個字節(jié)
- 只能在外面將長度傳遞過來
取出數(shù)組中得最大值
- 定義一個變量湿故,假設(shè)為最大值
- 注意:不能假設(shè)一個不是數(shù)組中的值為最大值
- 遍歷數(shù)組
- 依次取出數(shù)組中每一個元素的值,和假設(shè)的最大值進行比較膜蛔,如果數(shù)組的元素大于假設(shè)的最大值坛猪,就交換最大值
int arrayMax(int nums[], int length)
{
int max = nums[0];
for(int i = 1; i < length; i++)
{
if(max < nums[i])
{
max = nums[i];
}
}
return max;
}
- 因為數(shù)組是指針傳遞,所以也可以通過索引來取出最大值
- 這種方式可以多思考皂股,還有很多情景可以使用索引來進行
int arrayMax(int nums[], int length)
{
int max = 0;
for(int i = 1; i < length; i++)
{
if(nums[max] < nums[i])
{
max = i;
}
}
return nums[max];
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者