逗号在下面的陈述中的作用是什么?

Mic*_*ael 2 c c++ syntax petsc

当我在C/C++中使用这种语法时,正在阅读PETSc:

PetscInt i, n = 10, col[3], its;
PetscScalar neg_one = -1.0, one = 1.0, value[3];
Run Code Online (Sandbox Code Playgroud)

我不明白这里逗号的含义.它与元组有关吗?或者有什么东西超载?

unw*_*ind 12

这只是声明了相同类型的多个变量.

就像是

int a, b;
Run Code Online (Sandbox Code Playgroud)

第一行声明的类型的四个变量PetscInt,称为i,n(其被初始化为10),阵列col[3]和最后its.第二行声明了该类型的三个变量PetscScalar.

所以这:

PetscInt i,n = 10,col[3],its;
Run Code Online (Sandbox Code Playgroud)

是相同的:

PetscInt i;
PetscInt n = 10;
PetscInt col[3];
PetscInt its;
Run Code Online (Sandbox Code Playgroud)

有些人发现原始方式更短,更容易键入,也很好,因为它表明变量共享(部分)相同的类型.有些人觉得它很容易混淆和/或容易出错,这当然是主观的,但我觉得我应该提一下,以激励你为什么经常找到这样的代码.