陣列與指標的一些關係

2022-06-01 11:15:07 字數 576 閱讀 7004

本文主要是理解這幾個符號的意思a, a[0], &a, &a[0](前提是定義了陣列int a[10]);

1、a代表的是陣列名,a作左值的時候,表示的陣列a[10]的整個記憶體空間的大小(也就是10*sizeof(int)這麼多個位元組)。a作右值的時候表示的是陣列首元素的首位址,它的值和&a[0]的值是一樣的,意義也完全一樣,完全可以互相代替。同時因為在c語言中規定,陣列是不能夠整體訪問的,所以a是不能夠作左值的。

2、a[0]表示的陣列的第0個元素。當a[0]作左值的時候,表示的是a[0]這個元素的記憶體空間,也就是sizeof(int)個位元組的大小。當a[0]作右值的時候,表示的是a[0]這個位址空間所存放的數(房子裡面住的人)。

3、&a表示的是陣列的首位址,它的數值和陣列首元素的首位址&a[0]、a完全一樣,但是意義不一樣。因為意義不一樣,所以導致他們在參與運算的時候有不同的表示。&a是常量,不能做左值。

特別注意區分a和&a,雖然兩個的數值的一樣的,但是他們的意義不一樣,a代表陣列的首位址(意義是陣列整個記憶體空間大小(10*sizeof(int))的首位址),&a代表的是數值首元素的首位址(意義是陣列的首元素的記憶體空間大小(sizeof(int))的首位址)

物件與陣列間的一些關係

string陣列不能直接轉化為int陣列。但int可以直接轉為object,object也可以直接轉為int int也是乙個物件。但是乙個string就是乙個物件。對於object等價與int,等價與string int arrays new int object o arrays system.o...

陣列指標一些理解

printf d p 注意此處是先進行後面的運算p printf d p printf d n p i 此時指標就相當於陣列名 printf 2d p 如果陣列是a 6 則應該列印 printf 2d a 0 與上結果 1 a 是陣列首元素的位址,所以 a 的值和 a 0 的值相同,另一方面,a 0...

一維陣列與指標的關係

define crt secure no warnings include include include argc 傳引數的個數 包含可執行程式 ar 指標陣列,指向輸入的引數 intmain int argc,char ar int i 0 printf argc d n argc for i ...