[ create a new paste ] login | about

Link: http://codepad.org/0zmpInax    [ raw code | output | fork ]

C, pasted on Oct 22:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
int f(void *p, void *q, const char *label) {
	printf("%p %p %2d %s\n", p, q, (q - p), label);
}
int main() {
	int a[3][2] = { {10,20}, {30,40}, {50,60} };
	printf("sizeof (int) = %d\n", sizeof (int));
	printf("sizeof &a = %d\n", sizeof &a);
	printf("sizeof a = %d\n", sizeof a);
	printf("sizeof *a = %d\n", sizeof *a);
	printf("sizeof a[0] = %d\n", sizeof a[0]);
	f(&a, &a + 1, "&a, &a + 1");
	f(&a, (&a) + 1, "&a, (&a) + 1");
	f(a, a + 1, "a, a + 1");
	f(*a, *a + 1, "*a, *a + 1");
	f(*a, (*a) + 1, "*a, (*a) + 1");
	f(a[0], a[0] + 1, "a[0], a[0] + 1");
	return 0;
}


Output:
1
2
3
4
5
6
7
8
9
10
11
sizeof (int) = 4
sizeof &a = 4
sizeof a = 24
sizeof *a = 8
sizeof a[0] = 8
0xbf6c896c 0xbf6c8984 24 &a, &a + 1
0xbf6c896c 0xbf6c8984 24 &a, (&a) + 1
0xbf6c896c 0xbf6c8974  8 a, a + 1
0xbf6c896c 0xbf6c8970  4 *a, *a + 1
0xbf6c896c 0xbf6c8970  4 *a, (*a) + 1
0xbf6c896c 0xbf6c8970  4 a[0], a[0] + 1


Create a new paste based on this one


Comments: