陣列與指標

2022-05-25 22:39:12 字數 2307 閱讀 3842

所謂陣列,是有序的元素序列。 若將有限個型別相同的變數的集合命名,那麼這個名稱為陣列名。組成陣列的各個變數稱為陣列的分量,也稱為陣列的元素,有時也稱為下標變數。用於區分陣列的各個元素的數字編號稱為下標。陣列是在程式設計中,為了處理方便, 把具有相同型別的若干元素按無序的形式組織起來的一種形式。 這些無序排列的同類資料元素的集合稱為陣列。

陣列的形式

一維陣列

int a [10] =
int為型別名,a為陣列名,則是陣列長度,{}中的則是初值表.

二維陣列

二維陣列的賦初值方式有兩種:

1.分行賦初值

int a [2] [3] = ,}
2.順序賦初值

int a [2] [3] =
[2]則指的是行長度,[3]則指的是列長度

二維陣列的賦初值方式有兩種:

一些注意點:

字串字串常量就是用一對雙引號括起來的字串行,即一串字元,其擁有乙個結束標誌'\0',將字串存入字元陣列時,陣列長度至少是字串的有效長度+1.

賦值和輸入字串

static char s [80];

s [0] = 'a';

s [1] = '\0';

"a"和'a'的區別

"a"是字串常量,包括'a'和'\0',用一維字元陣列存放;'a'是字元常量,只有乙個字元,可以賦值給字元變數。

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

定以指標變數要使用指標宣告符 ,定義指標變數的一般形式為:

型別名 *指標變數名

int i, *p;
int i, *p;

p = &i; //為存放變數i的位址

p = 0;

p = null; 則說明了怎樣把特殊值0賦給指標p,這時指標的值為null

p = (int *)1732 //此條語句中使用了強制轉換來避免編譯錯誤,表示p指向位址符為1732的int型變數

指標的基本運算

int *p, a = 3;

p = &a;

int a = 3; *p1, *p2;

p1 = &a;

p2 = p1;

將變數的位址賦給指標p1,再將p1的值賦給指標p2。

注意:使用強制型別轉換運算子,可以將乙個表示式轉換成給定的型別。其一般形式為:

(型別名) 表示式

//指標和陣列及儲存單元

#includeint main(void)

指標與陣列

指標名是個變數,陣列名是乙個常量

陣列a是指標常量,不是變數,所以像a = p, a++, a+=2這樣的表示式都是非法的,不能改變指標常量a的值。如果變數p是指向某個指定型別變數的指標,那麼表示式p+1代表訪問該型別的下乙個變數的記憶體位址。比如:p+i ,p++ , p+=i這樣的表示式是有意義的。

陣列是一塊記憶體連續的資料。指標是乙個指向記憶體空間的變數。

指標+1指的是增加乙個儲存單元,陣列+1後的位址指的是下乙個元素的位元組,而不是位元組。

若想改變常量的值則將它賦給指標變數

#includeint bsearch (int *p, int n, int x);   //函式宣告 

int main(void)

; //有序陣列

int x, m;

printf("enter x:"); //提示輸入

scanf("%d", &x);

m = bsearch (a, 10, x);

if (m>=0)

printf("index is %d\n", m);

else

printf("not found\n");

return 0;

} int bsearch (int *p, int n, int x) //二分查詢函式

if(low <= high)

return mid; //找到返回下標

else

return-1; ///找不到返回-1

}

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

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元素的陣列。其實這兩種寫法主要是因為運算子的優先...