Chinaunix首页 | 论坛 | 博客
  • 博客访问: 254107
  • 博文数量: 55
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 419
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-06 20:22
文章分类

全部博文(55)

文章存档

2014年(55)

我的朋友

分类: C/C++

2014-03-21 12:44:15


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) |
0

上一篇:gdb调试命令

下一篇:算法笔试题

给主人留下些什么吧!~~