结构体作为函数参数报错

img


报错显示不允许使用不完整的类型,这个是怎么回事,我明明跟网课敲的一模一样。

结构体的类型定义,要放到 你上面printStudent函数之前,不然就是这种没定义的报错

你的结构体定义在主函数的作用域,离开主函数,其他地方是未定义得,所以你要把结构图放在最上面,对于整个文件中的函数都可见,就解决问题了

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7528279
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:邻接矩阵表示图的深度优先搜索遍历
  • 除此之外, 这篇博客: 有符号和无符号类型函数用例,源码反码补码的使用中的 例一: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include<stdio.h>
    int main()
    {
        /* *///
        char a = -1;
        signed char b = -1;
        unsigned char c = -1;
        printf("a=%d,c%d,c=%d", a, b, c);
    
        return 0;
    }

    输出为:

    a=-1,c=-1,c=255

    在32位操作系统中:

    -1的源码:1000000000000000000000000001

           反码:11111111111111111111111111111110(  符号位不变,其他取反)     

           补码:11111111111111111111111111111111(反码+1)

    char 类型的a,b,c只占八个字节,会发生截断,所以只放8个字节的字符

    char a->11111111           (char-->signed char)

    signed char b->11111111

    unsigned char c->11111111

    当把a,b,c要变成整型变量被打印出来时,会发生整型提升

    a:(有符号类型前方补符号位)11111111111111111111111111111111(补码)

                                                        1000000000000000000000000001(-1源码)

    b:(有符号类型前方补符号位)11111111111111111111111111111111(补码)

                                                        1000000000000000000000000001(-1源码)

    c:(无符号类型高位补0):00000000000000000000000011111111

                                                      (正数源码反码补码一样,以源码读出255)

  • 您还可以看一下 吴雪峰老师的巧用微信业余创业课程中的 创业成功案例分享,创业注意事项小节, 巩固相关知识点