字符串
#include<cstdio>
using namespace std;
void fun(char *s)
{
while(*s)
{
*s=(*s-48+5)%10+48;
printf("%d\n",*s);
s++;
}
}
int main()
{
char a[]="0123456789";
fun(a);
puts(a);
}
0的ASCII码为48,s指针指向a数组的首地址,传入fun()函数后,while(*p)中 *p为0,*s=(*s-48+5)%10+48;的意思为:在这数组中,向后循环移动5位,此时a[0]中的ASCII码为53,即数字5。s++ 指针向后移动,当遇到0时,停止循环。输出5678901234。
执行顺序如下:
5123456789
623456789
73456789
8456789
956789
06789
1789
289
39
4
#include<cstdio>
using namespace std;
int main()
{
char s[]="ABCD",*p;
for(p=s+1;*p;p++)
{
printf("%s\n",p);
}
}
输出为:
BCD
CD
D
因为输出字符串时,直到遇见"\0"时停止输出,字符串S为:ABCD\0,最后的\0为系统自动补齐,作为字符串结束的标志。