標籤:
黑馬程式員------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------
四 數組和指標
01 數組名代表數組在記憶體中的首地址,表示的是地址資訊,因此數組名可以理解為一個指標,不過數組名是一個常量,不能改變.
#include <stdio.h>int main(){ char name[]="haha"; char name1[]="gggg"; char name3[2][10] = {"fffff","jjjjj"}; printf("%s\n",name3[0]); return 0;}
02 指向數組的指標:定義指向數組的指標就是將數組的首地址賦值給指標變數.
如:int a[10];
int *p; p=&a[0];
p=&a[0]等價於p=a
#include <stdio.h>int main(){ char name[]="haha"; char name1[]="gggg"; char name3[2][10] = {"fffff","jjjjj"}; printf("%s\n",name3[0]); return 0;}
03 通過指標引用數組元素:p+i表示a[i]的地址,*(p+i)表示數組元素a[i]
04 可以改變指標變數的值,但指標常量不可改變.指標運算子的優先順序最高
05 多維陣列和指標:
x[i]等價於*(x+i)
&x[i]等價於x+i
/* 1.數組元素的訪問方式 int ages[5]; int *p; p = ages; 1> 數組名[下標] ages[i] 2> 指標變數名[下標] p[i] 3> *(p + i) 2.指標變數+1,地址值究竟加多少,取決於指標的類型 int * 4 char * 1 double * 8 */#include <stdio.h>void chang(int *array);int main(){ int ages[] = {10,5,55,66,45}; chang(ages); return 0; }void chang(int *array){ printf("%d\n",array[2]); }
06 指向多維陣列元素的指標變數:
指向由m個元素組成的一維數組的指標變數的定義為: 類型名(*指標變數名)[長度]; 如:int(*pa)[4];
07 字串和指標:
在對字串中的字元進行存取時,可以定義一個指標變數,指向字串中的第一個字元,再利用指標的移動來訪問字串中得字元
15-黑馬程式員------C 語言學習筆記---數組和指標