c - 当 i 已经用 0 和 if 条件初始化时,i 的值是多少?为什么?

标签 c

这段代码给出的结果是 i = 1,但是为什么当有 5 并且初始化为 3 时它给出这个值。

int main() {
    int i = 0;
    if(i==0) {
        i=((5,(i=3)),i=1);
        printf("%d",i);
    } else{
        printf("Hello");
    }
}

最佳答案

逗号 (,) 运算符返回右侧项。这里,返回的项是i=1的返回值,即1。然后该值被分配回i

关于c - 当 i 已经用 0 和 if 条件初始化时,i 的值是多少?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54269556/

相关文章:

c - 为什么指向结构的指针会使程序崩溃?

c - 如何使用 C 中的 strtok 将 csv 中的后续列分配给数组

c - 在 C 中的另一个开关中使用 Switch 语句

c - 将 2D 数组转换为 char* 数组并将 char 复制到字符串末尾的最快方法

c - 汇编到 C 矩阵协助

c - 在 C 中只接受字母而不接受整数

c - 即使是我最小的 .c 文件也总是编译成至少 128 KB 的可执行文件,这有什么原因吗?

c - 如何处理条件初始化,这是一种好的做法吗?

c - 在 c 中生成阿姆斯特朗数到第 n 个数不起作用

C将字符串解析为没有任何lib函数的字符数组