
C++给指针赋值的问题
char*p="Hello";p[0]='a';cout<<p<<endl;这样做为什么会运行出错呢?我赋值的不对?还有个疑问,char*p="abc"的意义是什么呢?声...
char * p = "Hello";
p[0] = 'a';
cout<<p<<endl;
这样做为什么会运行出错呢?我赋值的不对?
还有个疑问,char* p = "abc" 的意义是什么呢?
声明一个字符指针?值是abc?还是什么别的意思?
常量字符串,为何叫做常量字符串?
char不是字符类型吗,怎么能存储字符串呢? 展开
p[0] = 'a';
cout<<p<<endl;
这样做为什么会运行出错呢?我赋值的不对?
还有个疑问,char* p = "abc" 的意义是什么呢?
声明一个字符指针?值是abc?还是什么别的意思?
常量字符串,为何叫做常量字符串?
char不是字符类型吗,怎么能存储字符串呢? 展开
6个回答
展开全部
常量字符串类型,就是一旦赋值,就不得更改,如果再次赋值就会出错;如:
char *p = "Hello"; //p指向了常量字符串的指针;
p[0] = 'a'; //这条语句就会错;
const char symbol='a';
symbol= 'c'; //这条语句就会报错;
char是字符串类型,所以只能存储字符,但char * p表示字符串指针类型,所以可以存储字符串,就像 char str[20],p的类型等同于Str的类型;
kutpbpb只能回答这么多了,希望能对你有所帮助!
char *p = "Hello"; //p指向了常量字符串的指针;
p[0] = 'a'; //这条语句就会错;
const char symbol='a';
symbol= 'c'; //这条语句就会报错;
char是字符串类型,所以只能存储字符,但char * p表示字符串指针类型,所以可以存储字符串,就像 char str[20],p的类型等同于Str的类型;
kutpbpb只能回答这么多了,希望能对你有所帮助!
展开全部
char*p="abc";
是在内存开辟4个字节的存储空间,依次存放'a' 'b' 'c' '\0' 4个字符
并把存'a'的那个字节的地址 赋值给指针p
char*p ; 是说 定义一个指向字符型数据的指针p
指针p在内存中以 unsigned int数据类型存放 而非以char类型存放
*p=*(p+0)=p[0]
是在内存开辟4个字节的存储空间,依次存放'a' 'b' 'c' '\0' 4个字符
并把存'a'的那个字节的地址 赋值给指针p
char*p ; 是说 定义一个指向字符型数据的指针p
指针p在内存中以 unsigned int数据类型存放 而非以char类型存放
*p=*(p+0)=p[0]
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针指向内容被非法篡改,编译出错!
char* p = "hello",指针p指向的是常量字符串,这里的char* p相当于const char* p,第二行你更改了p指向的内容,当然报错!
注:在VC++6.0中由于安全性不高,程序能运行,但这种设计理念是错误的。
建议多看看基础的书!
char* p = "hello",指针p指向的是常量字符串,这里的char* p相当于const char* p,第二行你更改了p指向的内容,当然报错!
注:在VC++6.0中由于安全性不高,程序能运行,但这种设计理念是错误的。
建议多看看基础的书!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、char类型是字符类型,但存储的是单个字符,存储字符串用字符数组。
2、char *p = “abc”:声明字符型指针变量p,并将字符串abc的首地址赋给p(即字符‘a’的地址)。PS:p存储的不是整个字符串,而是“abc”的首地址。
3、执行p[0] = 'a',相当于将字符a赋给p[0](p为首地址,p[0]即字符串第一个字符H),即强制改变字符串Hello中的'H'值,但“Hello”是字符常量。其值不能被改变。故出错。
2、char *p = “abc”:声明字符型指针变量p,并将字符串abc的首地址赋给p(即字符‘a’的地址)。PS:p存储的不是整个字符串,而是“abc”的首地址。
3、执行p[0] = 'a',相当于将字符a赋给p[0](p为首地址,p[0]即字符串第一个字符H),即强制改变字符串Hello中的'H'值,但“Hello”是字符常量。其值不能被改变。故出错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你char * p = "Hello"; 这句话 就是 给p 赋了一个常量的地址值
p 只是 指向了 hello 的存储地址 你再 给p[0]赋值 就不对了
常量 字符串 是说 字符串 是一个常量 常量是没法更改的。
字符 类型里面 包括了 字符串类型
p 只是 指向了 hello 的存储地址 你再 给p[0]赋值 就不对了
常量 字符串 是说 字符串 是一个常量 常量是没法更改的。
字符 类型里面 包括了 字符串类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询