字元指標陣列

2021-06-21 10:00:45 字數 1110 閱讀 3945

char *a = "hello world";

a的資料型別為char *,其指向的資料型別為char,指向該字串的首元素h的位址

在對字元指標初始化賦值時可以將乙個字串賦值給它,但指標變數只是向該字串的首元素的位址,如果要訪問該字串其它的字元,需要通過指標偏移來實現.若要列印整個字串,printf("%s\n", a);會列印出字元指標變數a在初始化賦值的字串

char *a = ;

a的型別為char **,因為陣列名為陣列首元素的首位址,而陣列元素的型別為char *.

sizeof(a) == 2 * 4,這裡計算整個陣列的長度.

a + 1:

a指向a[0],a + 1指向a[1]

*a + 1:

*a表示a[0], *a + 1表示b[0]所指向的字串後移動乙個字元

例題:

int main(void)

;

printf("%c\n", *a);

printf("%s\n", a);

printf("%c\n", *(a + 1));

printf("%c\n", **b);

printf("%s\n", *b); //b[0]

printf("%s\n", *(b + 1));//b[1]

printf("%s\n", *b + 1);//b[0]所指向的字串後移動乙個字元

printf("%p\n", b); //b[0]的位址

printf("%p\n", b[0]);//b[0]元素的值,為所指向字串的首位址

printf("%p\n", b + 1); //b[0]位址 + 1 * 4 指標佔4個位元組

printf("%p\n", *b); //b[0]

printf("%d\n", sizeof(b)); //2 * 4,陣列的長度

printf("%d\n", sizeof(b[0]));//b[0]的型別為char *

printf("%d\n", sizeof(*b)); //b[0]

printf("%d\n", sizeof(*b[0]));//char

return 0;

}

字元指標陣列

include int main void 單獨拿出來,指的是陣列裡的內容是 型的,str的型別是char 型 printf c n str 1 1 d printf c n str a printf s n str 1 bg printf s n str 1 cd printf s n str 0...

字元,字元陣列,字元指標

一 字串變數與常量 例 char a abcdefg 這一段語句中,既有字串變數,也有字串常量。變數是陣列a,常量是 中的字面量字串 abcdefg 此時,可以訪問或修改a中任意乙個元素 但是,常量字串只能訪問,不能修改。這句留著下面有用 二 字元指標與字串常量 例 char p abcdefg 這...

函式指標 函式指標陣列 字元指標陣列

資料型別 指標名字 引數列表 int function int int include include intadd int a,int b int sub int a,int b int mul int a,int b int div int a,int b int main int argc,c...