#include
main(){
char* pa[7]={"sunday","monday","tuesday","wednesday"};
int i=1;
printf("%s",pa[i]);
int* a[7];
a[i]=&i;
printf("%d",*a[i]);
}
为什么printf("%s",pa[i]);的pa[i]前不用加*
而printf("%d",*a[i]);的a[i]前加*
%s会自动根据所指定的地址去向后依次寻值
兄弟弄明白了吗?我也这里不会
前面加个*引用的值,不加*引用的是地址。
&i代表的是取地址,也就是a[i]中存的值是i的地址,*a[i]是取地址操作,就是取出a[i]地址处对应的i的地址,不加星号就就是a[i]对应的值。