char *P=new char[10]的意思

比如char*P;P=newchar[10];我想问的是char*P只是一个指针,默认指向了一个char型的数据的地址,只能是*P来访问,但是一旦P=newchar[10... 比如char *P; P=new char[10]; 我想问的是char *P只是一个指针,默认指向了一个char型的数据的地址,只能是*P来访问,但是一旦P=new char[10];后,就可以P++了,而刚才不用P=new char[10]时候P++就是错的,系统咋知道什么时候是对了还是什么时候是错的啊,P只是指针,++就内存加相应的地址。 又比如结构体指针 Chassis_List = new CHASSISLIST[num]; 谢谢 展开
 我来答
终青欧山梅
2019-09-09 · TA获得超过3572个赞
知道大有可为答主
回答量:3104
采纳率:33%
帮助的人:178万
展开全部
P=new
char[10];是在程序堆中分配了10个char大小的空间,同时指针P指向这块内存的首地址
,也就是char[0]这个数据项的地址。因为P是一个指针变量,可以进行变量的相应的操作(比如自加之类的),当前P指向char[0],*p
,就是char[0]对应的值。P++就指向了char[1]依次类推...
在没有给P赋初值的时候P也是可以进行P++操作的,可是没有意义。因为P本身的初值是没有意义,它表示了一块没有意义的地址。你让他加加也就说不通了,没初值是可以编译过去的
指针操作必须赋初值的
char
a=9;
那如果char
*P=&a;
这样p++有意义吗,他本身初值对啊
你觉得有意义么?你想到一个什么结果?比如a的地址为0X00000008,你加上一个一之后指针的值是0X00000009,这个里面放的什么你是不知道的,操作系统也不会让你读取里面的数据,这样的话就可以崩溃
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式