Halo all,
First of all, I would like to say that this thing called "pointers" is making me sick. Each time I see '*' I get totally confused as to what should I do. So please help me, you can say me a prey of pointers. I want them to understand like you guys here on this forum have done. But still I'm sure I dont know even 0.0001% of it. Here's a code which I cant understand
Code:
#include<stdio.h>
#include<string.h>
void f(int *a[])
{
	printf("%d",(*++a)[0]);
	printf("\n%p",(void *)(*++a[0]));
}
int main(void)
{
	int i=10,j=20,k=40,l=50;
	int *r[4];
	r[0]=&i;
	r[1]=&j;
	r[2]=&k;
	r[3]=&l;
	f(r);
}
In this code except for knowing that r is an array of 4 int pointers, I dont know anything, specially when it's passed to the function. Now my questions are:
1. what is a[] in the function?
2.How are the outputs coming out to be 20 and CCCCCCCC respectively?
3.When I try to initialize r like this
Code:
int *r[4]={&i,&j,&k,&l};
I get warnings(j,k,l also)
Warning 2 warning C4221: nonstandard extension used : 'r' : cannot be initialized using address of automatic variable 'i'
I also want to say that this code wasn't given anywhere but I was exprimenting with array of pointers and suddenly made the code.
Waiting in anticipation
Thanks