读书人

关于指针有关问题的询问

发布时间: 2013-08-14 14:27:55 作者: rapoo

关于指针问题的询问
#include<iostream>


int main()
{

using namespace std;
char *name = new char[5];
float *diameter =new float;
float *weight = new float;

name ="moke";



这个是我写的一个课后习题的前部分,当这个语句 name ="moke";这样赋值的时候是正确的。这样是将字符串moke赋值给name的地址是吧。
但是我变成*name=“moke”的时候就出错了。这个应该是将moke这个复制给*name吧.但是它显示错误、、不能将 "const char *" 类型的值分配到 "char" 类型的实体

这个是我哪里理解错误了
麻烦给我解答一下
谢谢了
[解决办法]
name ="moke"这句,把右边字符串的第一个字符地址赋给左边,等号左右类型是一致的,都是char *
你换成*name,这个就变成一个字符而不是字符指针了,把一个char*赋给char当然是不行的
[解决办法]

引用:
#include<iostream>


int main()
{

using namespace std;
char *name = new char[5];
float *diameter =new float;
float *weight = new float;

name ="moke";



这个是我写的一个课后习题的前部分,当这个语句 name ="moke";这样赋值的时候是正确的。这样是将字符串moke赋值给name的地址是吧。
但是我变成*name=“moke”的时候就出错了。这个应该是将moke这个复制给*name吧.但是它显示错误、、不能将 "const char *" 类型的值分配到 "char" 类型的实体

这个是我哪里理解错误了
麻烦给我解答一下
谢谢了

char *name = new char[5];是申请一个5个char的空间,其首地址由name指向,name="moke";是将"moke"这个常量字符串从只读数据区复制到name所指向的地址。
如果是*name="moke"想想该是怎样的,右侧是const char* 左侧是一个char类型的数据空间,类型不匹配

读书人网 >C++

热点推荐