void foo(char *cc[])
{
printf("%p\n",cc);
cc++;
printf("%p\n",cc);
}
int main()
{
char *c[] = {"Hello","World", "yo"};
foo(c);
int *p = new int[1];
int *q = p + 1;
printf("p = %p and p+1 = %p \n", p, q);
printf("sizeof(int) = %u, sizeof(dptr)=%u and sizeof
sizeof(int), sizeof(c), sizeof(*c));
}
各ポインターは、指している要素の値 = サイズによってインクリメントされます。
したがって、int ポインターは 4 バイトずつインクリメントされます。
cc = {"hello", "world"} ポインターは 16 バイトずつ増加します。つまり、ptr あたり 8 バイト * 2
であり、cc = {"hello", "world", "yo"} ポインターは 24 バイト、つまり 8 バイトずつ増加します。ポイントあたり * 3
cc ポインターが静的に初期化されていない場合、つまり (char **c)、c は通常のポインターとして機能します。8 バイトずつ増加します。