正如c書中所寫的,數組名稱是指向第一個元素的指針,所以在名稱數組中,名稱指向的第一個元素也是指向字符串的指針,然後*名稱將打印第一個元素,但在代碼p的下一行指向a,並且q指向q,如名稱arr,但是作爲u打印* qu沒有得到3的值,爲什麼?數組和指針鏈
#include <stdio.h>
int main(void){
char *names[]={"jack","philip"};
printf("%s\n",*names);
int a=3;
int *p=&a;
int *q=&p;
printf("%i\n",*q);
return 0;
}
對不起,在第3行的問題第二個q是p不q,錯過鍵入 –
它應該是int ** q,&p是一個int指針的地址,以獲得您的上一個打印3,做** q –
如果你像@RyanFitzpatrick取消,'q'等同於'&p','* q'等同於'&a'。 '** q'等價於存儲'3'的'a'。 – ViniciusArruda