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...