Hi,

On 03/31/16 13:38, Emiliano Marini <emilianomarin...@gmail.com> wrote:
Besides, * and [] are interchangeable. You can define a string as an array
and use it later as a pointer:

char s[] = "hola";
char x = s[1];     // Here x = 'o'
char y = *(s+2);   // Here y = 'l'

And vice versa:

char *s = "hola";
char x = s[0];     // Here x = 'h'
char y = *(s+3);   // Here y = 'a'

This is right, and the following sintax are analogous:

     *(p+i) <--->  p[i]

*(*(p+i)+j) <--->  p[i][j]

This last one in the case of a double pointer.

On Wed, Mar 30, 2016 at 6:04 PM, Rainer Weikusat <
rainerweiku...@virginmedia.com> wrote:

There's one
>important difference:
>
>char chars[] = "12345";
>
>cause the compiler to reserve six bytes (five chars + terminating 0) in
>some location the program can write to. Afterwards,
>
>*chars = R;
>
>could be used to change the string to R2345.

This is because

*chars  <--->  *(chars+0)  <--->  chars[0]

are analogous. So, chars[0] changes from 1 to R.

  Aitor.


_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to