配列の注意点
1469 ワード
メモリに配列されたストレージ変数のメモリアドレッシングは大きいから小さいので、データの格納時には高バイトから が格納.配列に格納変数とは逆に、要素格納はメモリアドレスが小さいことから始まるが、要素内部格納は変数格納と一致する である.配列名は配列のアドレス である.
値転送とアドレス転送基本データ型の関数としてのパラメータは、値伝達 である.配列名は関数のパラメータ伝達として伝達する配列のアドレス である.配列名は配列のアドレス&number==&number[0]==number であるため配列が関数のパラメータである場合、要素の個数は を省略することができる.
関数の計算長さ配列がパラメータである場合、関数では配列の名前から配列要素の個数 を算出することはできない.システムは配列パラメータをポインタに自動的に変換するため、ポインタは8バイトを占有します. は配列名を伝達し、実際にはアドレス を伝達する.アドレスが伝達する場合、実はポインタ が伝達される.ポインタは64ビットコンパイル環境で8バイトの を占める.
長さは外でしか伝わらない .
配列内の最大値の取り出し変数を定義し、最大値と仮定します. 注意:配列でない値が最大 であるとは仮定できません.
配列 を巡る配列の各要素の値を順次取り出し、仮定の最大値と比較し、配列の要素が仮定の最大値より大きい場合、最大値 を交換する.配列はポインタ伝達であるため、インデックスにより最大値 を取り出すこともできる.この方法は多くのことを考えることができ、インデックスを使用して を行うことができるシナリオもたくさんあります.
値転送とアドレス転送
// ,
void change(int value)
{
}
// , ,
void change(int values[])
{
}
関数の計算長さ
配列内の最大値の取り出し
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;
}
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];
}