当我在C / C++中使用以下语法时,目前正在阅读PETSc:

PetscInt i, n = 10, col[3], its;
PetscScalar neg_one = -1.0, one = 1.0, value[3];

我不明白这里逗号的含义。与元组有关吗?还是有些东西超载?

最佳答案

那只是声明多个相同类型的变量。

就好像是

int a, b;

第一行声明了PetscInt类型的四个变量,称为in(已初始化为10),数组col[3]和最后是its。第二行声明了PetscScalar类型的三个变量。

所以这:
PetscInt i,n = 10,col[3],its;

是相同的:
PetscInt i;
PetscInt n = 10;
PetscInt col[3];
PetscInt its;

有些人发现原来的方法更短,更容易键入,并且也很好,因为它表明变量共享同一类型(的一部分)。有人发现它令人困惑和/或容易出错,这当然是主观的,但是我觉得我应该提一下它是为了激发为什么您经常会找到这样的代码。

08-17 02:58