永发信息网

char *p =new char[..]

答案:5  悬赏:20  手机版
解决时间 2021-03-31 02:45
char *p =new char[..]
最佳答案
p是指针,它的值是new出来空间的首地址
可以用p[0],p[1]
也可以用*p,*(p+1)
全部回答
引用每个元素是p[0]到p[8],也可以是*(p+0)......*(p+8)。p是指向起始地址的指针,相当于&p[0].指针也可以表示数组元素,就是用首地址加上偏移量,比如p[n]=*(p+n).但是你这个用法*p[0],*p[1]就是四不像了,指针就指针,数组就数组,你的用法都包含了。其实在编译的时候,数组也要用指针表示,用指针速度更快一些。如果用数组的话,比如引用p[2],在编译的时候要经过确定首地址是p,偏移量是2,在定位到p+2这个地址,然后取保存在这个地址的数据*(p+2),所以速度比直接用*(p+2)慢一些。
C++和C内部都使用指针来处理数组,所以数组和指针基本等价是C++和C的优点之一。
所以在这里是可以直接用p[n]来表示数组成员变量的。而且在C++中,不仅是char数组指针,就是int,float等其它类型的数组,也可以用这种方式引用。
在C++中很多原来C中不允许的做法都可以实现了。现在使用C++比C语言方便很多。
p是个指针,指向的是开辟的地址的首地址
int a[3];
int *p = a;
可以这样访问数组阿a[i],也可以p[i],*(p+i);
*p[0],*p[1]也就是*a[0],*a[1],看这样对吗?
*p[0]是啥?
搞清楚数组名和指针的区别。

char arr[10] = "abcd";
char *p = arr;
用指针怎么找元素? 是*p[0]么?显然不是。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我以前有一万额度,我刚伸到10万额度,为什么
请问GK70B型全自动液压调直机,按“修改”键
汽车手动窗户改电动窗户需要什么配件
请问邮政普通包裹 H05184787237 从山东省聊城
如何系统的学习blender
马桶异味怎么除
外地小孩上幼儿园需要什么材料
茶花有分地栽盆栽吗
我家闺女6岁了,下身老臭臭,为什么
poi怎样判断合并了几行几列的数量
请问考研可以文转理吗?我是财务管理的..想考
我做了无创dna结果显示21染色体成高风险,参
工会可以报销加班餐费吗
形容醒来仿佛不知身在哪里的诗词
Win7/64位,C盘系统盘多少G合适?分几个
推荐资讯
兆芯的X86cpu有多少国产成分
说几道像那个海盗分宝石那么逻辑思维能力强的
清平乐 赵令畤春风依旧,着意隋堤柳。搓得鹅
心窝处用力按疼痛是什么原因
沙龙一词来自哪个国家
形容女孩子霸道除了大姐大之外还有什么?要3个
求这个角色的出处0.0
食品包装产品中添加的色母检测参照什么国家标
0.8m等于多少dm
牙齿不齐,用牙贴效果好吗
(3/7-5/9+8/21)*63-7.15*5+3.1
介绍家乡的玉米,动笔写一写它的特点。(20字)
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?