.和->有什么区别?

vb6andvc6 2009-11-18 11:17:39
typedef struct _ResultStr{
char t[255];
}ResultStr,*LResultStr;

LResultStr mystr;
mystr->t[0]=97;
mystr->t[1]=98;
mystr->t[2]='\0';

printf("%s\n",mystr->t );//error,why?

---------------------------------
ResultStr mystr;
mystr.t[0]=97;
mystr.t[1]=98;
mystr.t[2]='\0';

printf("%s\n",mystr.t );//OK
...全文
145 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
vb6andvc6 2009-11-19
  • 打赏
  • 举报
回复
开的分太少了,分又给错了。。。sorry
zgjxwl 2009-11-19
  • 打赏
  • 举报
回复
->是*和.的综合体。
stjay 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kevinguozuoyong 的回复:]
在结构体里定义一个指向class,struct或者union类型的指针,在引用的时候就可以用->,对已结构体里定义的变量类型,就可以用"." ,由于字符数组t[255]不符合用"->"的条件,所以应该用"."
我的简单的理解
[/Quote]

不简单阿
huqinglu123 2009-11-18
  • 打赏
  • 举报
回复
指针就用->
其余的都用.比如类 对象...
bean11222 2009-11-18
  • 打赏
  • 举报
回复
很简单
如果你定义一个指向类或者结构的指针 当你在取类或者结构体内的成员时用 ->
如果你定义一个类或者结构的对象 当你在取类或者结构体内的成员时用.
仅此而已~~
kevinguozuoyong 2009-11-18
  • 打赏
  • 举报
回复
在结构体里定义一个指向class,struct或者union类型的指针,在引用的时候就可以用->,对已结构体里定义的变量类型,就可以用"." ,由于字符数组t[255]不符合用"->"的条件,所以应该用"."
我的简单的理解
jenf 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 vb6andvc6 的回复:]
typedef struct _ResultStr{
char t[255];
}ResultStr,*LResultStr;

LResultStr mystr;
mystr->t[0]=97;
mystr->t[1]=98;
mystr->t[2]='\0';

printf("%s\n",mystr->t );//error,why?

请改为:
ResultStr mystr1;
LResultStr mystr = &mystr1;
mystr->t[0]=97;
mystr->t[1]=98;
mystr->t[2]='\0';

printf("%s\n",mystr->t );//error,why?

你的mystr目前是一个指针,未指向任何对象,故通过他修改任何对象都是未定义的;
就好像你写 int *pi; *pi=3;一样。
vanchristin 2009-11-18
  • 打赏
  • 举报
回复
貌似没有听懂,再想一想
tanyq1232 2009-11-18
  • 打赏
  • 举报
回复
楼上那个回答是对的。
jenf 2009-11-18
  • 打赏
  • 举报
回复
对象的指针用->,对象用.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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