[英]In a function call, what is the operator, and what are the operands?
我試圖理解C語言的一些基礎知識.CRC編程語言說
函數調用是一個后綴表達式 ,稱為函數指示符,后跟括號,其中包含一個可能為空的逗號分隔的賦值表達式列表(Par.A7.17),它們構成函數的參數。
在函數調用中,運算符是什么,操作數是什么?
是()
運營商?
函數名是操作數嗎?
是()
操作數內的參數?
謝謝。
在函數調用中, ()
是一個運算符,就像[]
是訪問數組元素時的運算符一樣。
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.