数组与指针
一、数组名其实相当于一个指针常量,也就是其指向的地址不会发生改变,是数组第一个元素所储存的地址。
在已定义的指针变量和数组条件下,以下不同形式语句有着同样的效果:
int *pa;
int a[20];
第一种
pa = &a[0];
第二种
pa = a;
第三种
×pa = a[0];
二、在参数调用中,以下不同形式有着相同的意义:
1、值调用:
a[2]
与
*(a+2)
2、地址调用
&a[2]
与
a+2
三、strcpy函数,将指针t指向的字符串复制到指针s指向的位置
1、数组下标实现方式
void strcpy(char *s,char *t)
{
int i = 0;
while((s[i] = t[i++]) != '\0');
}
2、指针方式
void strcpy(char *s,char *t)
{
while((*s++ = *t++) != '\0');
//3、while(*s++ = *t++);
}
上述两个函数的作用是相同的,相比之下,第三种写法最为简便。