|
Pointers and Arrays | |
|
| |
#include <stdio.h>
void f(int *aa, int *bb)
{
*bb = 8;
aa[1] = bb[2];
aa = bb;
}
main()
{
int a[5] = { 1, 2, 3, 4, 5 }, *b;
b = a + 2;
f(a,b);
printf("%d %d %d %d %d\n",
a[0], a[1], a[2], a[3], a[4]);
}
#include <stdio.h>
void g(int *aa, int *bb)
{
bb[2] = aa[-2];
*aa++ = 17;
*++aa = 10;
}
main()
{
int blap[7] = { 1, 2, 3, 4, 5, 6, 7 };
int *c = blap + 3;
g(c,blap);
printf("%d %d %d %d %d %d %d\n",
blap[0], blap[1], blap[2], blap[3], blap[4],
blap[5], blap[6]);
}
int a[30], i;, the expression
a[i] is equivalent to which of these?
*(a + i)
i[a]
*&a[i]
(a+1)[i-1]
(*&i)[&*a]
int m;, does
the expression (&m)[1] = m compile? If so,
what does it do?
| Answer | Pointers and Strings |