Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 是不是&引用;在下面编写的代码片段中有任何角色吗???代码会产生编译器错误吗?_Objective C_C - Fatal编程技术网

Objective c 是不是&引用;在下面编写的代码片段中有任何角色吗???代码会产生编译器错误吗?

Objective c 是不是&引用;在下面编写的代码片段中有任何角色吗???代码会产生编译器错误吗?,objective-c,c,Objective C,C,这里的逗号是什么意思?这个法律目标是C还是C?谢谢 为什么不试着编译它呢 它不会编译。您不能为i分配两个不同的值(int i=1,2)或任何您试图执行的操作。代码不是这样工作的,这是代码中的一个bug 更合理的赋值应该是int i=1,s=2代码将产生错误,因为在这种情况下,逗号将引入新的变量定义,2不是有效的变量名称 在其他上下文中,逗号运算符可用于“叠加”表达式,最后一个表达式的值将是整个表达式的值。是的,它是合法的,逗号或“,”是运算符…您可以尝试参考运算符表了解详细信息…在代码中使用i=

这里的逗号是什么意思?这个法律目标是C还是C?谢谢

为什么不试着编译它呢

它不会编译。您不能为
i
分配两个不同的值(
int i=1,2
)或任何您试图执行的操作。代码不是这样工作的,这是代码中的一个bug


更合理的赋值应该是
int i=1,s=2

代码将产生错误,因为在这种情况下,逗号将引入新的变量定义,
2
不是有效的变量名称


在其他上下文中,逗号运算符可用于“叠加”表达式,最后一个表达式的值将是整个表达式的值。

是的,它是合法的,逗号或“,”是运算符…您可以尝试参考运算符表了解详细信息…在代码中使用
i=1,2
是合法的,但不适用于声明。你到底想干什么?@phoenix-错了,逗号在不同的地方被用来表示不同的东西。调用函数时,它用于分隔参数。在定义中,它允许你定义多个变量。是的,它不起作用。逗号不是初始化表达式中的合法运算符。通过“叠加”表达式,您的意思是否与数组中的相同???例如,当我们说int arr[]={1,2,3,4,5,6}No时,例如,
For(int i=0;i<10;++i,++j){..}
是合法的,每次迭代都会增加i和j<代码>返回(i++,j)将递增i并返回j。不,当您出于某种原因想要丢弃表达式的值时,在表达式上下文中使用逗号运算符。通常,此表达式会执行某种副作用。例如:
如果(x>10)i=0,j=1
x=(++y,20)
。初始化数组时使用的逗号只是一个分隔符。@Lindydancer…对不起,我没有得到“丢弃”部分…你能在这里说得更清楚一点吗???@phoenix:例如:
I=a+b,20此处
i
将被分配到20,
a+b
的结果将被丢弃(甚至优化掉)。@jonsca:您感到困惑-您不能在此上下文中使用逗号运算符-尝试编译它:@jonsca:gcc抛出错误:
错误:预期标识符或'(“在数值常量之前
@phoenix:是的,这会起作用-同样,您应该尝试一下:
int main()
{
    int i = 1, 2;
    printf("%d", i);
}