char型指针的初始化问题

方法一:char *str = “abcd“
区别在于你这里赋给str的是一个常量字符串,存储在静态全局区,因此str也成了一个指向常量的指针,不能通过指针对常量内容做任何更改,例如*(ch+2)='y',将会出错;。

方法二:
char a[4]={a,b,c,d};
char*str = a;
也是一种初始化直接赋值,但是赋给str的是一个变量,所以str就是一个指向栈的指针了。
定义字符数组char str[]="abcd"只能有这么一种初始化方法,此时的abcd其实是存放在数组str中的,所以存储在栈中,与char* str="abcd"是不一样的;

posted @ 2014-02-14 09:57  yexuannan  阅读(1023)  评论(1编辑  收藏  举报