I was googling and found the following syntax for pointers
void main()
{
char a[10]="helloworld";
char *p=a;
printf("%c",p[0]);
}
I didnt know that Pointers can be accessed in the array form too. I used to use * for pointer operations I used a[0] for arrays and *p for pointer operations, which is why I didnt know the other 2 things. Now from the above, we can access the second element of array in any one of the following ways
printf("%C",a[1]); \\ this is the array
printf("%c",*(a+1)); \\ this is the array using *
printf("%c", p[1]); \\ using the pointer
printf("%C",*(p+1)); \\ using the pointer
Now I wonder: which is the faster operation? I read that operations using pointers are faster, and that this is why C stays at the top for fast execution and that no other language can beat its fastness.
Now the real question: What makes the pointer operations faster?
1) *(p+0) the *(Value at address) that makes the trick or
2) p[0]
since we use
*(a+1) or *(p+1) both are same
a[1] or p[1] both are same
when a normal array can be used as *(a+1)( which uses * value at address) like a pointer. why do we use pointers for faster operations? When both have the same syntax, when normal array and pointer uses * in those syntaxes why pointers are faster?
But guys please tell me then why we use pointers ? My professor told me pointers are faster because they point to address rather a variable should be searched in the location.