C++ 给数组指针赋值的一些问题?

我想了大半个小时都没想明白。我认为*c应该是一个int,但为什么是一个int*???... 我想了大半个小时都没想明白。我认为*c应该是一个int,但为什么是一个int*??? 展开
 我来答
之迎垒0i9
游戏玩家

2021-08-23 · 非著名电竞玩家
知道答主
回答量:72
采纳率:100%
帮助的人:4.4万
展开全部
这里提一个建议:
C++ Primer中提到过,定义数组的名字看成一个指针,也就是说我现在这样定义一个数组
int ia[5];
当我单独使用ia的时候,一般情况下它就是一个指针。(只有使用decltype的时候是数组类型)。ia默认指向第一个元素,使用下标是可以递增元素。例如:
auto p = ia;
p的类型为int*,指向ia的第一个元素,也就是ia[0]
p[2]获得第*(p+2)个元素
当然也可以这样写:
int *p2 = ia;
p2[2] = 20;
在你的程序中,c是一个指针,指向一个存放着指针的数组,所以解引用*c是获得第一个元素,和c[0]等价,也就是获得的是数组中的第一个指针,然后再次解引用,才是获得数组指针指向的地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
合肥四峰电子
2021-08-18 · 专注无线信号覆盖与通讯
合肥四峰电子
向TA提问
展开全部
*c是指针,指针可以是 int ,char ,unsigned int 等等。
而int 等是数据类型。
既然c是指针 那肯定得 这样表述(整形指针 字符型指针 ... 才对啊) 你理解为int ;那就表示c 成一个指针直接变成了普通的整形 性质表了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
microroom
科技发烧友

2021-08-18 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1541万
展开全部
根据int (*c)[20]=&b;可知c的值就是&b,那*c不就是*&b即b吗?

而b是int型一维数组,b的类型当然是int*。

也就是说c保存的是数组b的地址,那c指向的值(*c)自然就是数组b了,而b的类型是int*。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最大的宝宝
2021-08-18 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:394万
展开全部
int (*c)[20] = &b;

*c得到什么呢,得到的是int [20],而不是int。int [20]相当于一个地址值,还得再来一次*,才能取到元素值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式