次のコードでは:
#include<stdio.h>
int main(int argc,char *argv[]){
int index;
for(index = 0; index < argc; index++) {
printf("The %d is %s\n",index,argv[index]);
}
return 0;
}
宣言からchar *argv[]
、cdeclはそれが意味すると言っている
declare argv as array of pointer to char
ので、コードは次のように書くべきだと思います:
printf("The %d is %s\n",index,*argv[index]);
次のコードとして:
void give_me_ptr(int *ptr){
printf("the value of ptr is %p\n", ptr);
printf("the value of ptr is %d\n", *ptr);
}
int main(void){
int a = 10,index;
give_me_ptr(&a);
return 0;
}
それが判明
the value of ptr is 0x7fff76010b48
the value of ptr is 10
私にとっては、ポインタ変数の前に*を追加する必要があることを意味します。