c - C数组中的感叹号(单位矩阵)

标签 c matrix identity

我知道有一个关于 ! in C 的解释的线程,但我没有完全理解它,所以我们开始吧。根据我的理解,number! 将为非零数字返回 0,为 0 返回 1。我在网上看到了一些代码,为了确定矩阵是否为单位矩阵,人们使用了以下内容:

for (i = 0; i < row; i++)
{
    for (j = 0; j < column; j++)
    {
        if (a[i][j] != 1 && a[j][i] != 0)
        {
            flag = 0;
            break;
        }
    }
}
if (flag == 1 )
    printf("It is identity matrix \n");
else
    printf("It is not a identity matrix \n");

用户输入的矩阵大小和值是矩阵。我的问题是 ! 标记如何帮助确定它是否是一个单位矩阵,如果它所能做的就是返回 1 和 0 的输入。是否有任何其他方法可以在不使用的情况下识别单位矩阵?

最佳答案

! 总是 返回一个 int(感谢 alk 指出这一点),在这种情况下它代表逻辑非并且只是补充一个 bool 表达式,如果一个 bool 表达式的计算结果为true,比如boolean ex = true then !ex将解析为 false(最后为 0),这是 true补充

在比较的情况下,== 用于检查是否相等,!= 用于检查不等式,这两个结果在一个 boolean 值中,最终被评估为 int

关于c - C数组中的感叹号(单位矩阵),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42327245/

相关文章:

c - main 之外的函数中的值不会保留在结构中

sql - 标识列与主键

mongodb - 带有MongoDB标识的ASP.NET Core 2.0

c++ - 如何计算和使用 cvMat 平均值

r - 从大量等长字符串中为每个字符创建一个出现矩阵

security - IDP 和 SP 身份验证流程,无需重定向到 IDP

c - 将包含零的二进制文件写入 Linux 文件系统

c - 在一大块中分配 3D 矩阵

c - 如何编译 Knuth 的程序?

c - 为什么将数组分配给矩阵是非法的?