什么類型初始化指針?
指針初始化,是程序的一種語言,主要用于程序運算。
初始化
int i=10;
int * a = &i;
int * a = NULL;(編譯沒問題,運行錯誤,指針所指向地址必須為合法有效的內存地址)
a = (int *)malloc(10*sizeof(int));
a = 1;
int * a =10;(錯誤寫法,給指針賦值必須為地址,*p為所指向變量的值)
int *a=&i;
int * c = a + 15;(a代表數組首地址,右側表達式表示地址向高位移動15位指針所指類型字節即移動4*15字節)
a的地址是10,c的地址是10+ 4*15,因為a的類型是int *,地址增長時加整型的長度。
字符型指針初始化
char str="ksjdkghdksf";
str是一個數組首地址
數組里面的內容是一個字符串
char * pstr="aslgkjklahjkla";
pstr是指向字符串常量的首地址的指針,編譯器將字符串常量放在只讀數據段.
注意,是只讀數據段里面的數據是不可更改的