/*指针在函数的应用——整型数组与字符型数组*/
#include <stdio.h>
void fun0(char *str)//void fun0(char str[])
{
int len=0;
while(*str!=0)
{
str++;
len++;
}
printf("len=%d,str[]=%s\n",len,str);
}
void fun1(char *str)
{
int len=0;
char *head=str;
while(*str!=0)
{
str++;
len++;
}
printf("len=%d,str[]=%s\n",len,head);
}
void fun2(int *buff,int num)
{
int i;
printf("buff[]=");
for(i=0;i<num;i++)
{
printf("%d ",*buff++);
}
}
int main()
{
int buff[]={12,23,34,45,56};
char str[]="qwer";
fun0(str);
fun1(str);
fun2(buff,sizeof(buff)/sizeof(buff[0]));
}
/*编译结果:
len=4,str[]=
len=4,str[]=qwer
buff[]=12 23 34 45 56
*/
/*总结:
str++导致str的首地址偏移,直接 printf("%s",str)无法输出字符串
*/