求助!关于指针结构数组问题

懶蟲 2009-08-06 08:18:27

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
struct CandyBar
{
char brand[30];
float weight;
int num;
};

CandyBar * exe6=new CandyBar [3];
/*
strcpy((*exe6).brand,"一");
(*(exe6+1)).weight=2.2;
(*(exe6+2)).num=333;

cout << (*exe6).brand << "、" << (*(exe6+1)).weight << "和" << (*(exe6+2)).num <<endl;
*/


exe6[1]->weight=2.2;

delete [] exe6;
return 0;
}


请问上面的代码中,为什么注释中的内容可以编译通过,换成下面那种赋值方式就不能通过呢?
...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
懶蟲 2009-08-06
  • 打赏
  • 举报
回复
原来是我钻牛角尖了,谢谢飞天御剑流和瞌睡虫·星辰
soasme 2009-08-06
  • 打赏
  • 举报
回复
是不是这样?
(exe6+1)->weight=2.2;
jixingzhong 2009-08-06
  • 打赏
  • 举报
回复
或者 (exe6+1)->weight=2.2;

指针,访问元素使用 ->
对象,访问元素使用 .
飞天御剑流 2009-08-06
  • 打赏
  • 举报
回复
exe6[1]->weight=2.2;
------------------------
exe6[1]已经是一个CandyBar对象了,不是指针,不能使用->运算符,想使用->的话应该这样写:

( exe6 + 1 )->weight = 2.2;
jixingzhong 2009-08-06
  • 打赏
  • 举报
回复
exe6[1].weight=2.2;

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧