亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5308 | 回復(fù): 13
打印 上一主題 下一主題

[C] *號到底是左結(jié)合的還是右結(jié)合的? [復(fù)制鏈接]

論壇徽章:
2
2015年迎新春徽章
日期:2015-03-04 10:16:532015元宵節(jié)徽章
日期:2015-03-06 15:53:22
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-07-04 10:19 |只看該作者 |倒序?yàn)g覽
例如,

  1. int main()
  2. {
  3.         int i = 1;
  4.         int* p, q;
  5.         p = &i;
  6.         //q = &i;//q不是指針
  7.         int* buf[20];//數(shù)組的每個(gè)元素都是int*
  8.         return 0;
  9. }
復(fù)制代碼
第二行聲明里面,*好象是右結(jié)合的,也就是p是一個(gè)*,指向int,而q是普通的int
第五行聲明里面,*好象是左結(jié)合的,也就是buf是一個(gè)數(shù)組,有20個(gè)元素,每個(gè)元素都是int*

那我就不明白了,*號有沒有確定的左右結(jié)合律呢?
還請指點(diǎn)

論壇徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龍
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥豬
日期:2014-04-01 08:56:02亥豬
日期:2014-04-08 08:38:58程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-01-07 06:20:00
2 [報(bào)告]
發(fā)表于 2016-07-04 11:00 |只看該作者
我每次都是一行只聲明一個(gè)變量。

論壇徽章:
44
15-16賽季CBA聯(lián)賽之浙江
日期:2021-10-11 02:03:59程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-02 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-04-25 10:55:452016科比退役紀(jì)念章
日期:2016-04-23 00:51:2315-16賽季CBA聯(lián)賽之山東
日期:2016-04-17 12:00:2815-16賽季CBA聯(lián)賽之福建
日期:2016-04-12 15:21:2915-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-24 21:38:2715-16賽季CBA聯(lián)賽之福建
日期:2016-03-18 12:13:4015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-05 00:55:2015-16賽季CBA聯(lián)賽之佛山
日期:2016-02-04 21:11:3615-16賽季CBA聯(lián)賽之天津
日期:2016-11-02 00:33:1215-16賽季CBA聯(lián)賽之浙江
日期:2017-01-13 01:31:49
3 [報(bào)告]
發(fā)表于 2016-07-04 11:15 |只看該作者
K&R當(dāng)年寫parser的時(shí)候要么是偷懶要么就是腦抽了一下,這么多年過去了還是有人想要試圖理解這腦抽背后是不是有什么深意……
我家樓下也有兩棵法國梧桐啊。

論壇徽章:
6
2015年辭舊歲徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16賽季CBA聯(lián)賽之浙江
日期:2016-11-05 14:38:4115-16賽季CBA聯(lián)賽之新疆
日期:2016-11-11 18:38:06
4 [報(bào)告]
發(fā)表于 2016-07-04 11:52 |只看該作者
*作指針操作時(shí)是右結(jié)合
*作乘法操作時(shí)是左結(jié)合,其優(yōu)先級低于指針操作的*
[]是左結(jié)合,且優(yōu)先級高于所有的*

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2016-07-04 15:54 |只看該作者
這是一元運(yùn)算符,哪有左右結(jié)合之說?
在二元運(yùn)算符里,只有賦值類是右結(jié)合,如  =  +=  -= *= /=

形如

int  * a [ N ]

只是誰【先】結(jié)合的問題,是 *優(yōu)先還是 [ 優(yōu)先,這是運(yùn)算符優(yōu)先級比較的問題。
按規(guī)定,*優(yōu)先。

        


論壇徽章:
20
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-16 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-18 06:20:00每日論壇發(fā)貼之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16賽季CBA聯(lián)賽之江蘇
日期:2017-06-26 11:05:5615-16賽季CBA聯(lián)賽之上海
日期:2017-07-21 18:12:5015-16賽季CBA聯(lián)賽之青島
日期:2017-09-04 17:32:0515-16賽季CBA聯(lián)賽之吉林
日期:2018-03-26 10:02:16程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-15 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2016-07-07 18:37:512015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-08-17 12:21:08
6 [報(bào)告]
發(fā)表于 2016-07-12 11:24 |只看該作者
聲明里的 */[] 算是operator么?

論壇徽章:
224
2022北京冬奧會(huì)紀(jì)念版徽章
日期:2015-08-10 16:30:32操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-02-18 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-01 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-03-02 06:20:0015-16賽季CBA聯(lián)賽之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16賽季CBA聯(lián)賽之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16賽季CBA聯(lián)賽之廣夏
日期:2023-02-25 16:26:26CU十四周年紀(jì)念徽章
日期:2023-04-13 12:23:1015-16賽季CBA聯(lián)賽之四川
日期:2023-07-25 16:53:45操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-10 19:22:58
7 [報(bào)告]
發(fā)表于 2016-07-12 11:45 來自手機(jī) |只看該作者
樓主在看編譯原理,反正你又不研究編譯器

糾結(jié)什么啊

論壇徽章:
20
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-16 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-18 06:20:00每日論壇發(fā)貼之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16賽季CBA聯(lián)賽之江蘇
日期:2017-06-26 11:05:5615-16賽季CBA聯(lián)賽之上海
日期:2017-07-21 18:12:5015-16賽季CBA聯(lián)賽之青島
日期:2017-09-04 17:32:0515-16賽季CBA聯(lián)賽之吉林
日期:2018-03-26 10:02:16程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-15 06:20:0015-16賽季CBA聯(lián)賽之江蘇
日期:2016-07-07 18:37:512015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-08-17 12:21:08
8 [報(bào)告]
發(fā)表于 2016-07-14 10:49 |只看該作者
回復(fù) 6# nswcfd


找到一句話,不知道是否可以作為依據(jù)?姑且記錄一下。

6.7.6 Declarators

Syntax

   declarator:
      pointer/opt direct-declarator
   
   direct-declarator:
      identifier
      ( declarator )
      direct-declarator [ type-qualifier-list/opt assignment-expression/opt ]
      direct-declarator ( parameter-type-list )
      ...

   pointer:
      * type-qualifier-list/opt
      * type-qualifier-list/opt pointer

Semantics

2 Each declarator declares one identifier, and asserts that when an operand of the same
  form
as the declarator appears in an expression
, it designates a function or object with the
  scope, storage duration, and type indicated by the declaration specifiers.

不知道是不是可以理解為,盡管聲明不是(?)表達(dá)式,但是可以按照“同樣形式”的表達(dá)式來解析,
也就是說,可以利用表達(dá)式的操作符優(yōu)先級,來判斷標(biāo)識符具體代表什么(普通object,指針,數(shù)組,函數(shù)等)。

例如,對于如下的聲明,static int (*a)[10];
其中declartion specifier是static int,declarator是(*a)[10],
按照expression的規(guī)則去解析(*a)[10],要求a是一個(gè)指針,并且(*a)是個(gè)數(shù)組,那么a就是一個(gè)指向數(shù)組的指針。

言外之意,解析declator和解析表達(dá)式的邏輯/代碼是重用的?

---------------------------------------------------------------------

注,這里主要用到的expression規(guī)則為:

primary-expression:
   identifier
   constant
   ( expression )
   ...

postfix-expression:
   primary-expression
   postfix-expression [ expression ]
   postfix-expression ( argument-expression-list/opt )
   ...

unary-expression:
   postfix-expression
   unary-operator cast-expression
   ...

unary-operator:
   *
   ...

cast-express到assignment-expression,略

expression:
   expression , assignment-expression
   ...

(*a)[10]的解析結(jié)果為
expression
   -> assignment-expression -> ...
      -> postfix-expression [ expression ]
         -> ( expresion ) [ expression ] -> ...
            -> ( unary-operator cast-expression) [ expression ]
               -> ( * cast-expresion ) [ expression ] -> ...
                  -> ( * identifier ) [ expression ]
                     -> ( * a ) [ expression ] -> ...
                        -> ( * a ) [ primary-expression ]
                           -> ( * a ) [ constant ]
                              -> ( * a ) [ 10 ]

評分

參與人數(shù) 1信譽(yù)積分 +10 收起 理由
cdsfiui + 10 很給力!

查看全部評分

論壇徽章:
6
2015年辭舊歲徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16賽季CBA聯(lián)賽之浙江
日期:2016-11-05 14:38:4115-16賽季CBA聯(lián)賽之新疆
日期:2016-11-11 18:38:06
9 [報(bào)告]
發(fā)表于 2016-07-15 12:01 |只看該作者
對,聲明中的運(yùn)算符與表達(dá)式中含義有所不同,但優(yōu)先級與結(jié)合性是一致的

論壇徽章:
10
CU大;照
日期:2013-09-18 15:20:48程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-07-21 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-07-30 09:40:01技術(shù)圖書徽章
日期:2014-10-14 16:00:43天蝎座
日期:2013-09-27 17:41:29CU大;照
日期:2013-09-18 15:21:17CU大;照
日期:2013-09-18 15:21:12CU大;照
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:20:58每日論壇發(fā)貼之星
日期:2016-07-21 06:20:00
10 [報(bào)告]
發(fā)表于 2016-07-18 16:10 |只看該作者
這里*不是運(yùn)算符,哪來左結(jié)合右結(jié)合?

int  * a, p  ;  指明一個(gè)是指針,一個(gè)是變量

int * b [5] ; 指明一個(gè)指針數(shù)組,這里還能怎么個(gè)結(jié)合法?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP