我想了解下KRC的一些基本的C程序設計語言說函數調用中,操作符是什麼,操作數是什麼?
函數調用是一個後綴表達式,稱爲功能標誌,然後是包含括號可能是空的,用逗號分隔賦值表達式列表(Par.A7.17), 構成函數的參數。
在一個函數調用,什麼是運營商,什麼是操作數?
是
()
運營商?函數名是操作數嗎?
是否在
()
操作數內的參數?- 函數指示符是函數調用的同義詞嗎?
謝謝。
我想了解下KRC的一些基本的C程序設計語言說函數調用中,操作符是什麼,操作數是什麼?
函數調用是一個後綴表達式,稱爲功能標誌,然後是包含括號可能是空的,用逗號分隔賦值表達式列表(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)
這意味着函數名是一個「後綴表達式」和()
是實際的操作者。 C標準並沒有提到這個操作符的操作數,但我想你可以把這個函數的名字稱爲操作數。參數列表不是一個操作數,而是一個特例。
函數指示符的定義是(6.3.2。1):
A 函數指示符是一個具有函數類型的表達式。
在表達func();
含義,func
將是功能標誌,但表達作爲一個整體將是一個函數調用。所以這不完全一樣。
考慮示例funcptr_t f = func;
其中涉及函數標識func
但沒有函數調用。
函數調用是在黃色框中定義的,它顯然是* not *函數指示符,它是函數名稱。 –