簡體   English   中英

在函數調用中,運算符是什么,操作數是什么?

[英]In a function call, what is the operator, and what are the operands?

我試圖理解C語言的一些基礎知識.CRC編程語言說

函數調用是一個后綴表達式 ,稱為函數指示符,后跟括號,其中包含一個可能為空的逗號分隔的賦值表達式列表(Par.A7.17),它們構成函數的參數。

  1. 在函數調用中,運算符是什么,操作數是什么?

    ()運營商?

    函數名是操作數嗎?

    ()操作數內的參數?

  2. 函數指示符是函數調用的同義詞嗎?

謝謝。

在函數調用中, ()是一個運算符,就像[]是訪問數組元素時的運算符一樣。

6.5.2后綴運算符

 Syntax 1 postfix-expression: primary-expression postfix-expression [ expression ] postfix-expression ( argument-expression-listopt ) postfix-expression . identifier postfix-expression -> identifier postfix-expression ++ postfix-expression -- ( type-name ) { initializer-list } ( type-name ) { initializer-list , } argument-expression-list: assignment-expression argument-expression-list , assignment-expression 

此運算符的操作數是函數名稱(或指向函數的指針)。

()操作數內的參數?

否。根據C標准,表達式列表指定函數的參數。

C標准中的文本幾乎相同,6.5.2.2:

后綴表達式后跟包含可能為空的逗號分隔表達式列表的括號()是函數調用。 后綴表達式表示被調用的函數。 表達式列表指定函數的參數。

語法是(6.5.2):

postfix-expression ( argument-expression-listopt )

這意味着函數名稱是“postfix-expression”,而( )是實際的運算符。 C標准沒有提到這個運算符的操作數,但我想你可以將函數名稱稱為操作數。 參數列表不是操作數,而是特殊情況。


函數指示符的定義是(6.3.2.1):

函數指示符是具有函數類型的表達式。

表達式func();中的含義func(); func將是函數指示符,但整個表達式將是函數調用。 所以它不是完全相同的術語。

考慮示例funcptr_t f = func; 它涉及函數指示符func但沒有函數調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM