Code One
#include
int main(int argc,char *argv[])
{
char *s="123456";
while(*s)
{
printf("%c ",*s);
*s += 1;
}
return 0;
}
Code Two
#include
int main(int argc,char *argv[])
{
char s[] = "123456";
int i = 0;
while(s[i])
{
printf("%c ",s[i]);
i++;
}
return 0;
}
上面两个代码编译时都不会发生错误,可是代码一会有一个警告[warning] deprecated conversion form string constant to 'char'[-Wwrite-strings]
在32位机,指针占4个字节,char型占一个字节,因此尝试将字符赋值给指针时会给出一个警告。运行时,可能会发生访问越界。
阅读(1411) | 评论(0) | 转发(0) |