char *p =new char[..]
答案:5 悬赏:20 手机版
解决时间 2021-03-31 02:45
- 提问者网友:沉默菋噵
- 2021-03-30 15:50
char *p =new char[..]
最佳答案
- 五星知识达人网友:胯下狙击手
- 2021-03-30 16:59
p是指针,它的值是new出来空间的首地址
可以用p[0],p[1]
也可以用*p,*(p+1)
可以用p[0],p[1]
也可以用*p,*(p+1)
全部回答
- 1楼网友:话散在刀尖上
- 2021-03-30 21:11
引用每个元素是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)慢一些。
- 2楼网友:深街酒徒
- 2021-03-30 20:00
C++和C内部都使用指针来处理数组,所以数组和指针基本等价是C++和C的优点之一。
所以在这里是可以直接用p[n]来表示数组成员变量的。而且在C++中,不仅是char数组指针,就是int,float等其它类型的数组,也可以用这种方式引用。
在C++中很多原来C中不允许的做法都可以实现了。现在使用C++比C语言方便很多。
所以在这里是可以直接用p[n]来表示数组成员变量的。而且在C++中,不仅是char数组指针,就是int,float等其它类型的数组,也可以用这种方式引用。
在C++中很多原来C中不允许的做法都可以实现了。现在使用C++比C语言方便很多。
- 3楼网友:青尢
- 2021-03-30 18:42
p是个指针,指向的是开辟的地址的首地址
int a[3];
int *p = a;
可以这样访问数组阿a[i],也可以p[i],*(p+i);
*p[0],*p[1]也就是*a[0],*a[1],看这样对吗?
int a[3];
int *p = a;
可以这样访问数组阿a[i],也可以p[i],*(p+i);
*p[0],*p[1]也就是*a[0],*a[1],看这样对吗?
- 4楼网友:上分大魔王
- 2021-03-30 18:11
*p[0]是啥?
搞清楚数组名和指针的区别。
如
char arr[10] = "abcd";
char *p = arr;
用指针怎么找元素? 是*p[0]么?显然不是。
搞清楚数组名和指针的区别。
如
char arr[10] = "abcd";
char *p = arr;
用指针怎么找元素? 是*p[0]么?显然不是。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯