码迷,mamicode.com
首页 > 其他好文 > 详细

char* str="bbo";char s1[]="bbo"的区别

时间:2016-06-05 18:38:37      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

;表达式运算得到的结果是常量值(不可写),常量是没有内存空间的编译的时候就会把常量放到常量区,以后不能修改
字符串是字符串常量,字符是字符常量(修改),看到的能修改的都是已经从常量区放到寄存器,在mov到变量中了所以能修改
 
char* str="helloworld";char s1[]="bbo"的区别
int main(int argc, char* argv[]){
 
    int a=1;
    char* str="bbo";
    *str=‘m‘;///;c005的原因就在于常量区的东西不能修改(只能读),而你修改了那么就会报访问错误
    //char s1[]="bbo";
    *s1=‘p‘;;这样写能修改是因为这个字符串是一个变量在栈里面(已经把字符串常量拷到栈空间内部了),s1存储的是首个字符的地址(所以能修改ok)
    printf("Hello World!\n");
    return 0;
}
 

 

char* str="bbo";char s1[]="bbo"的区别

标签:

原文地址:http://www.cnblogs.com/jk0011/p/5561162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!