#include <stdio.h>
int main(void)
{
int a[] = {10, 20, 30, 40, 50};
int *p = a;
int (*q)[5] = &a;
printf("sizeof(int) = %zu\n", sizeof(int)); // 4 printf("sizeof p = %zu\n", sizeof p
); // 8 printf("sizeof q = %zu\n", sizeof q
); // 8 printf("&a = %p\n", (void *)&a
); // 0x1000 printf("&p = %p\n", (void *)&p
); // 0x2000 printf("&q = %p\n", (void *)&q
); // 0x3000
printf("*(a + 3) = %d\n", *(a
+ 3)); printf("(a + 2)[1] = %d\n", (a
+ 2)[1]); printf("(1 + a)[2] = %d\n", (1 + a
)[2]); printf("*(3 + a) = %d\n", *(3 + a
)); printf("2[a + 1] = %d\n", 2[a
+ 1]);
printf("a + 1 = %p\n", (void *)(a
+ 1)); printf("&a[1] = %p\n", (void *)&a
[1]); printf("&a[1] + 1 = %p\n", (void *)(&a
[1] + 1)); printf("&*a = %p\n", (void *)&*a
); printf("&*a + 1 = %p\n", (void *)(&*a
+ 1)); printf("&a + 1 = %p\n", (void *)(&a
+ 1));
printf("*(p + 3) = %d\n", *(p
+ 3)); printf("(p + 2)[1] = %d\n", (p
+ 2)[1]); printf("(1 + p)[2] = %d\n", (1 + p
)[2]); printf("*(3 + p) = %d\n", *(3 + p
)); printf("2[p + 1] = %d\n", 2[p
+ 1]);
printf("p + 1 = %p\n", (void *)(p
+ 1)); printf("&p[1] = %p\n", (void *)&p
[1]); printf("&p[1] + 1 = %p\n", (void *)(&p
[1] + 1)); printf("&*p = %p\n", (void *)&*p
); printf("&*p + 1 = %p\n", (void *)(&*p
+ 1)); printf("&p + 1 = %p\n", (void *)(&p
+ 1));
printf("(*q)[3] = %d\n", (*q
)[3]); printf("*(*q + 3) = %d\n", *(*q
+ 3)); printf("(*q + 2)[1] = %d\n", (*q
+ 2)[1]); printf("(1 + *q)[2] = %d\n", (1 + *q
)[2]); printf("*(3 + *q) = %d\n", *(3 + *q
)); printf("3[*q] = %d\n", 3[*q
]); printf("2[*q + 1] = %d\n", 2[*q
+ 1]);
printf("*q + 1 = %p\n", (void *)(*q
+ 1)); printf("&(*q)[1] = %p\n", (void *)&(*q
)[1]); printf("&(*q)[1] + 1 = %p\n", (void *)(&(*q
)[1] + 1)); printf("&**q + 1 = %p\n", (void *)(&**q
+ 1)); printf("&*q + 1 = %p\n", (void *)(&*q
+ 1)); printf("&q + 1 = %p\n", (void *)(&q
+ 1));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKQp7CiAgICBpbnQgYVtdID0gezEwLCAyMCwgMzAsIDQwLCA1MH07CiAgICBpbnQgKnAgPSBhOwogICAgaW50ICgqcSlbNV0gPSAmYTsKCiAgICBwcmludGYoInNpemVvZihpbnQpID0gJXp1XG4iLCBzaXplb2YoaW50KSk7IC8vIDQKICAgIHByaW50Zigic2l6ZW9mIHAgPSAlenVcbiIsIHNpemVvZiBwKTsgLy8gOAogICAgcHJpbnRmKCJzaXplb2YgcSA9ICV6dVxuIiwgc2l6ZW9mIHEpOyAvLyA4CiAgICBwcmludGYoIiZhID0gJXBcbiIsICh2b2lkICopJmEpOyAvLyAweDEwMDAKICAgIHByaW50ZigiJnAgPSAlcFxuIiwgKHZvaWQgKikmcCk7IC8vIDB4MjAwMAogICAgcHJpbnRmKCImcSA9ICVwXG4iLCAodm9pZCAqKSZxKTsgLy8gMHgzMDAwCgogICAgcHJpbnRmKCIqYSA9ICVkXG4iLCAqYSk7CiAgICBwcmludGYoImFbM10gPSAlZFxuIiwgYVszXSk7CiAgICBwcmludGYoIiooYSArIDMpID0gJWRcbiIsICooYSArIDMpKTsKICAgIHByaW50ZigiKGEgKyAyKVsxXSA9ICVkXG4iLCAoYSArIDIpWzFdKTsKICAgIHByaW50ZigiKDEgKyBhKVsyXSA9ICVkXG4iLCAoMSArIGEpWzJdKTsKICAgIHByaW50ZigiKigzICsgYSkgPSAlZFxuIiwgKigzICsgYSkpOwogICAgcHJpbnRmKCIzW2FdID0gJWRcbiIsIDNbYV0pOwogICAgcHJpbnRmKCIyW2EgKyAxXSA9ICVkXG4iLCAyW2EgKyAxXSk7CgogICAgcHJpbnRmKCJhICsgMSA9ICVwXG4iLCAodm9pZCAqKShhICsgMSkpOwogICAgcHJpbnRmKCImYVsxXSA9ICVwXG4iLCAodm9pZCAqKSZhWzFdKTsKICAgIHByaW50ZigiJmFbMV0gKyAxID0gJXBcbiIsICh2b2lkICopKCZhWzFdICsgMSkpOwogICAgcHJpbnRmKCImKmEgPSAlcFxuIiwgKHZvaWQgKikmKmEpOwogICAgcHJpbnRmKCImKmEgKyAxID0gJXBcbiIsICh2b2lkICopKCYqYSArIDEpKTsKICAgIHByaW50ZigiJmEgKyAxID0gJXBcbiIsICh2b2lkICopKCZhICsgMSkpOwoKICAgIHByaW50ZigiKnAgPSAlZFxuIiwgKnApOwogICAgcHJpbnRmKCJwWzNdID0gJWRcbiIsIHBbM10pOwogICAgcHJpbnRmKCIqKHAgKyAzKSA9ICVkXG4iLCAqKHAgKyAzKSk7CiAgICBwcmludGYoIihwICsgMilbMV0gPSAlZFxuIiwgKHAgKyAyKVsxXSk7CiAgICBwcmludGYoIigxICsgcClbMl0gPSAlZFxuIiwgKDEgKyBwKVsyXSk7CiAgICBwcmludGYoIiooMyArIHApID0gJWRcbiIsICooMyArIHApKTsKICAgIHByaW50ZigiM1twXSA9ICVkXG4iLCAzW3BdKTsKICAgIHByaW50ZigiMltwICsgMV0gPSAlZFxuIiwgMltwICsgMV0pOwoKICAgIHByaW50ZigicCArIDEgPSAlcFxuIiwgKHZvaWQgKikocCArIDEpKTsKICAgIHByaW50ZigiJnBbMV0gPSAlcFxuIiwgKHZvaWQgKikmcFsxXSk7CiAgICBwcmludGYoIiZwWzFdICsgMSA9ICVwXG4iLCAodm9pZCAqKSgmcFsxXSArIDEpKTsKICAgIHByaW50ZigiJipwID0gJXBcbiIsICh2b2lkICopJipwKTsKICAgIHByaW50ZigiJipwICsgMSA9ICVwXG4iLCAodm9pZCAqKSgmKnAgKyAxKSk7CiAgICBwcmludGYoIiZwICsgMSA9ICVwXG4iLCAodm9pZCAqKSgmcCArIDEpKTsKCiAgICBwcmludGYoIioqcSA9ICVkXG4iLCAqKnEpOwogICAgcHJpbnRmKCIoKnEpWzNdID0gJWRcbiIsICgqcSlbM10pOwogICAgcHJpbnRmKCIqKCpxICsgMykgPSAlZFxuIiwgKigqcSArIDMpKTsKICAgIHByaW50ZigiKCpxICsgMilbMV0gPSAlZFxuIiwgKCpxICsgMilbMV0pOwogICAgcHJpbnRmKCIoMSArICpxKVsyXSA9ICVkXG4iLCAoMSArICpxKVsyXSk7CiAgICBwcmludGYoIiooMyArICpxKSA9ICVkXG4iLCAqKDMgKyAqcSkpOwogICAgcHJpbnRmKCIzWypxXSA9ICVkXG4iLCAzWypxXSk7CiAgICBwcmludGYoIjJbKnEgKyAxXSA9ICVkXG4iLCAyWypxICsgMV0pOwoKICAgIHByaW50ZigiKnEgKyAxID0gJXBcbiIsICh2b2lkICopKCpxICsgMSkpOwogICAgcHJpbnRmKCImKCpxKVsxXSA9ICVwXG4iLCAodm9pZCAqKSYoKnEpWzFdKTsKICAgIHByaW50ZigiJigqcSlbMV0gKyAxID0gJXBcbiIsICh2b2lkICopKCYoKnEpWzFdICsgMSkpOwogICAgcHJpbnRmKCImKipxICsgMSA9ICVwXG4iLCAodm9pZCAqKSgmKipxICsgMSkpOwogICAgcHJpbnRmKCImKnEgKyAxID0gJXBcbiIsICh2b2lkICopKCYqcSArIDEpKTsKICAgIHByaW50ZigiJnEgKyAxID0gJXBcbiIsICh2b2lkICopKCZxICsgMSkpOwoKICAgIHJldHVybiAwOwp9