#include <stdio.h>
#include <string.h>
int main()
{
char szBuffer[]="Hello, World!";
puts("i &szBuffer[i] szBuffer[i] szBuffer[i] szBuffer + i");
puts("=====================================================================");
for(unsigned i=0; i<strlen(szBuffer); i++)
{
printf
(
"%u\t%u\t\t%u\t\t%c\t\t%s\n",
i,
(unsigned)&szBuffer[i],
(unsigned)szBuffer[i],
szBuffer[i],
(szBuffer+i)
);
}
return 0;
}
/*
i &szBuffer[i] szBuffer[i] szBuffer[i] szBuffer + i
=====================================================================
0 2293600 72 H Hello, World!
1 2293601 101 e ello, World!
2 2293602 108 l llo, World!
3 2293603 108 l lo, World!
4 2293604 111 o o, World!
5 2293605 44 , , World!
6 2293606 32 World!
7 2293607 87 W World!
8 2293608 111 o orld!
9 2293609 114 r rld!
10 2293610 108 l ld!
11 2293611 100 d d!
12 2293612 33 ! !
*/
The last column above, i.e., szBuffer + i, is essentially what you were seeing with your example.