/*指针配合下标当数组使用*/
#include <stdio.h>
int main()
{
int buff[]={12,23,34,45,56};
int *p=buff;
int i;
for(i=0;i<5;i++)
{
printf("buff=%d\n",*(p+i));
}
char str[]="qwert";
char *q=NULL;
q=str;
printf("str:%s\n",q);
}
/*编译结果:
buff=12
buff=23
buff=34
buff=45
buff=56
str:qwert
*/
//总结:数组名就是数组的首地址
//int *p=buff;buff[]==p[]
//char *q=str;str[]==q[]
//printf("%s",str)==printf("%s",str)
/*指针配合数组赋值*/
#include <stdio.h>
int main()
{
int buff[128]={12,23,34,45,56};
int *p=buff;
int i;
for(i=0;i<5;i++)
{
printf("buff[%d]=%d\n",i,*p++);
}
printf("*p=%d\n",*p);
}
/*编译结果:
buff[0]=12
buff[1]=23
buff[2]=34
buff[3]=45
buff[4]=56
*p=0
*/
/*总结:
++与*优先级相同,从右向左结合。p先计算 再计算*p 后p地址++;
整型数组未赋值的部分为0
*/