38,指標與陣列

2021-07-08 10:24:45 字數 1560 閱讀 7791

#include /*

陣列名就是陣列的位址,陣列的位址就是首元素的位址

所以,獲取陣列位址有兩種方式:

&nums[0]或nums

*/int main(int argc,const

char * argv) ;

int*p = nums;//int *p = &nums[0];

return0;}

#include

int main(int argc,const

char * argv) ;

int*p = nums;//int *p = &nums[0];

printf

("num[0] = %i\n",p[

0]);

printf

("num[1] = %i\n",p[

1]);

printf

("num[2] = %i\n",p[

2]);

printf

("-----------華麗的分割線-------------\n");

for (int i=0; i<3; i++)

return0;}

//num[0] = 1

//num[1] = 3

//num[2] = 5

//-----------華麗的分割線-------------

//num[0] = 1

//num[1] = 3

//num[2] = 5

//program ended with exit code: 0

#include /*

思想:因為*p可以儲存第乙個陣列元素的位址,並取出其數值,那麼,就可以依次向*p存入

其他陣列元素的位址,並取出其數值了。

*/int main(int argc,const

char * argv) ;

int *p;

for (int i=0; i<3; i++)

}//nums[0] = 1

//nums[1] = 3

//nums[2] = 5

//program ended with exit code: 0

#include

/*跟第二種的原理差不多,只是使用位址加法或減法來移動位址

指標+1,表明指標加上指標型別所占用的長度,比如:

當前的指標型別是int,那麼+1本質上就是加上4個位元組

*/int main(int argc,const

char * argv) ;

int *p = nums;

printf

("nums[0] = %i\n",*p);

p = p+1;

printf

("nums[1] = %i\n",*p);

p = p+1;

printf

("nums[2] = %i\n",*p); }

//nums[0] = 1

//nums[1] = 3

//nums[2] = 5

//program ended with exit code: 0

3 8指標 陣列和sizeof運算子

1 sizeof是c語言的乙個運算子 注意 sizeof不是函式,雖然用法很像函式 sizeof的作用是用來返回 裡面的變數或者資料型別占用的記憶體位元組數。2 sizeof存在的價值?主要是因為在不同平台下各種資料型別所佔的記憶體位元組數不盡相同 譬如int在32位系統中為4位元組,在16為系統中...

指標(三) 指標陣列

指標陣列定義 一維指標陣列的定義形式 型別名 陣列名 陣列長度 char p 5 乙個陣列,若其元素均為指標型別資料,稱為指標陣列,指標陣列中的每乙個元素都相當於乙個指標變數。指標陣列的初始化 使用位址為指標陣列初始化 char p 5 指標陣列和二級指標 int main char temp 定義...

C 開篇(四) 指標陣列與陣列指標

1 指標陣列與陣列指標的區別?1 指標陣列 每個元素為乙個指標 指標陣列 int p int array 10 2 陣列指標 指向陣列的指標 陣列指標 int int array p 10 說明 根據這個規則,看第一優先的符號,比如指標陣列,最大的是,所以是陣列 陣列指標,最大的是 所以是指標。2 ...