陣列與指標

2021-08-09 13:27:00 字數 1003 閱讀 5082

都是佔4個位元組,因為兩者都是指標變數,指標變數裡面儲存的是位址,位址在作業系統中是固定長度,長度是由系統的位數決定的,作業系統32位,長度則為4個位元組,而作業系統為64位,長度則為8個位元組。

sizeof不可以因為函式的陣列引數相當於指向該陣列第乙個元素的指標

通常採用以下兩種方法:

將陣列引數和表示陣列大小的值一起傳遞給函式

引入某種規則來結束乙個陣列

不可以,陣列名是指向這個陣列物件的第乙個元素的指標,他不能被放在賦值運算子的左邊。

字元陣列是乙個儲存字元的陣列,而字串是乙個用雙括號括起來的以'\0'結束的字串行,雖然字串是儲存在字元陣列中的,但是一定要注意字串的結束標誌是'\0'。

總的來說是沒有區別的,字串就是以字元陣列形式儲存的。可以把乙個字串看成是乙個字元陣列,可以按陣列那樣操作。兩者沒有本質的區別,只是在不同的情況下有不同的叫法。

指標(pointer)是程式語言中的乙個物件,利用位址,它的值直接指向(points to)存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為「指標」。意思是通過它能找到以它為位址的記憶體單元。
是,系統為指標分配記憶體空間,指標有自己的位址,指標能夠存值(位址)

在32位的平台中,指標佔據了4個位元組,用sizeof可以測得。

const char* p定義了乙個常量指標,指向的內容是常量,不可修改,但是指標本身可以修改

const* char =a 定義了乙個指標常量,即指標本身不能修改,但指標指向的內容可以修改

null不是被定義為0,就是被定義為(void *)0,這兩種值幾乎相同

整型值0是null最常見的儲存方式,但在有些計算機中null會以其他形式儲存

萬能指標void被稱為通用指標或泛指針,它指向的物件不屬於任何型別,是c語言關於純粹位址的約定

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...

指標陣列與陣列指標

1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...

指標陣列與陣列指標

呵呵,實在是厭倦了繞口的解釋。指標陣列,故名思義,就是指標的陣列,陣列的元素是指標 陣列指標,同樣,就是直想陣列的指標。簡單舉例說明 int p 2 首先宣告了乙個陣列,陣列的元素是int型的指標。int p 2 宣告了乙個指標,指向了乙個有兩個int元素的陣列。其實這兩種寫法主要是因為運算子的優先...