1 #include <stdio.h>
2 #include <string.h>
3 
4 int
main()5 main() {
6 	int	i = 19;
7 	char	buf[i];
8 	char	(*gnu)[i];
9 
10 	gnu = &buf;
11 
12 	strcpy(*gnu, "nonsense");
13 	puts(buf);
14 
15 	if (gnu == &buf) {
16 		puts("gud");
17 	} else {
18 		puts("bad");
19 	}
20 
21 	++gnu;
22 	if (gnu == &buf) {
23 		puts("bad2");
24 	} else {
25 		puts("gud2");
26 	}
27 
28 	/* Verify that the increment worked properly */
29 	printf("%u\n", (unsigned)((char *)gnu - (char *)buf));
30 
31 	--gnu;
32 	/* Verify that the decrement worked properly */
33 	printf("%u\n", (unsigned)((char *)gnu - (char *)buf));
34 
35 	/* Try increment/decrement with +/- operators instead */
36 	gnu += 1;
37 	printf("%u\n", (unsigned)((char *)gnu - (char *)buf));
38 	gnu -= 1;
39 	printf("%u\n", (unsigned)((char *)gnu - (char *)buf));
40 }
41 
42