PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] C里面对结构用.和用->的结果一样
楼主:
wei115
(ㄎㄎ)
2018-11-20 18:29:56
如题
最近阅读程式码时,看到了不太清楚的用法
在实验的时候发现
对结构(不是结构指标)用“.”和用“->”的结果一样
例如:
struct test
{
int a;
int b;
int c;
};
struct test test = {1, 2, 3};
test.a == test->a == 1;
test.b == test->b == 2;
我对->的理解是a->b = (*a).b,但好像不是如此?
这是为什么呢?谢谢
作者:
CMJ0121
(请多指教!!)
2018-11-20 18:34:00
gcc (GCC) 8.2.1 20180831 对 struct 直接用 -> 会编译失败
楼主:
wei115
(ㄎㄎ)
2018-11-20 18:39:00
!?真假,我是用GDB实验的,没有实际编译过我回去再试试看QQ
作者:
james732
(好人超)
2018-11-20 18:54:00
不要自删啦,把你犯的错补充上来就好
作者:
chuegou
(chuegou)
2018-11-20 19:25:00
可以补充啦造福后人 这板也不允许你删吧
作者:
b0920075
(Void)
2018-11-20 21:06:00
自删等劣退
作者:
me356500
(呵呵)
2018-11-20 21:27:00
宣告指标结构才会这样用ㄅ?
作者:
CMJ0121
(请多指教!!)
2018-11-20 23:12:00
刚刚试了 GDB 8.2 得到跟原 PO 一样的结论在 GDB 对变量用 . 跟 -> 都是拿到 struct 的 member
作者:
jamfly
(jamfly)
2018-11-21 09:31:00
-> 只是对指标的语法糖衣而已
作者:
Vent
(Avec le Vent)
2018-11-21 11:38:00
之前看一个国外讲struct pointer的影片,那个讲师说他不太懂为啥是用->,他一开始都是用(*a).的形式来理解a->
作者:
bibo9901
(function(){})()
2018-11-23 01:46:00
我也好奇, 既然编译器知道a是指标还是struct, 为什么要逼我使用不同的语法?
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2018-11-25 14:58:00
在 C++ 里 -> 可以 override 所以这两个不见得一样不过为什么当初 C 要这样设计就只能问作者了, 不过我想这应该也是很合理的设计, 否则光想一个变量是不是指标就会很头大, 别忘了那年代没有 IDE, 变量型别只能自己记得
作者:
sarafciel
(Cattuz)
2018-11-26 17:42:00
你要写(*ptr).mem也可以呀 ptr->mem本来就是语法糖
继续阅读
[问题] new int array的方法
TampaBayRays
[问题] VC++ WindowsForm + boost interprocess
twowater
[问题] if字串判断
kent41914
[问题] 大一程设作业
aquilo
[问题] 大一程设 大数相加
aquilo
[问题] 从机率不同的几个样本中随机抽出一个
shinjiyano
[问题] 大一程设递回问题
y995526
[问题] codeblock开不起来
david0426
[问题] struct array 引入sub function issue
viajimmy
[问题] 串行收到的16进制直接转成字串
smvenjoy
Links
booklink
Contact Us: admin [ a t ] ucptt.com