一直在跟别人说,数组的名字就是指针,数组名可以+1,指向数组的第二个元素,可是还是没能掌握。
论坛上看见这个小例子,第一眼是直接看不懂。
我想大多数新手和我一样,第一反应都是应该改为(s-1).
int strlen_(const char*s)
{
if(*s==0)
return 0;
else
return strlen_(s+1)+1;
}
其实不然,这个小函数是利用了可以将s看做是指向字符数组的指针,继而,(s+1)就指向第二个字符。
一直在跟别人说,数组的名字就是指针,数组名可以+1,指向数组的第二个元素,可是还是没能掌握。
论坛上看见这个小例子,第一眼是直接看不懂。
我想大多数新手和我一样,第一反应都是应该改为(s-1).
int strlen_(const char*s)
{
if(*s==0)
return 0;
else
return strlen_(s+1)+1;
}
其实不然,这个小函数是利用了可以将s看做是指向字符数组的指针,继而,(s+1)就指向第二个字符。