如果我有:
char *name; //this is in a struct
*row->name //row is able to get in the struct
如何阅读* row->名称及其返回的内容?
我会链接我正在阅读的代码:http://pastebin.com/MvLXkDCz
答案 0 :(得分:3)
首先评估->
运算符,然后指向name
指向的结果指针被*
取消引用。所以和
row->name[0]
和恕我直言这是表达相同的更好的方法(有时使用间接操作符*
更清楚)。
答案 1 :(得分:0)
->
组件选择运算符的优先级高于一元*
运算符,因此*row->name
被解析为*(row->name)
;您正在取消引用row->name
成员。
所有其他postfix 1 运算符也是如此:
*arr[i] == *(arr[i])
*foo() == *(foo())
*a.p == *(a.p)
*p++ == *(p++)
*q-- == *(q--)
<小时/>