我想了解下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 *函数指示符,它是函数名称。 –