liuyuanji1995 发表于 2020-5-2 09:43:24

s1e29课后作业疑问

问题1:测试题第六题能正常运行的原理是什么?
#include <stdio.h>

void func(int b[]);

void func(int b[])
{
      printf("%d\n", b);
}

int main(void)
{
      int a = {
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12}
      };

      func(a);

      return 0;
}
问题2:为什么在我的电脑上运行会报错?错误如下
cannot convert 'int (*)' to 'int (*)' for argument '1' to 'void func(int (*))' ?

谢谢好心人!!!

wp231957 发表于 2020-5-2 09:44:56

宽度对不上

人造人 发表于 2020-5-2 09:49:55

不要用C++环境学C语言,把后缀改成 .c

就是要努力呀 发表于 2020-5-2 12:02:22

void func(int b[]);
int a
你的函数里二维数组长度是3,但是定义的a数组的长度是4
如果你就是为了专门实现这种长度对不上的情况,应该用到指针
void func (int (*pa))
int a
int (*pa) = a
func(pa)

liuyuanji1995 发表于 2020-5-4 10:52:16

就是要努力呀 发表于 2020-5-2 12:02
你的函数里二维数组长度是3,但是定义的a数组的长度是4
如果你就是为了专门实现这种长度对不上的情况, ...

谢谢

liuyuanji1995 发表于 2020-5-4 10:52:47

人造人 发表于 2020-5-2 09:49
不要用C++环境学C语言,把后缀改成 .c

你咋知道我这是cpp文件的呢{:5_106:}

人造人 发表于 2020-5-4 13:13:49

liuyuanji1995 发表于 2020-5-4 10:52
你咋知道我这是cpp文件的呢

首先,那些ide默认创建的就是 cpp
还有,C++对类型要求比较严格
页: [1]
查看完整版本: s1e29课后作业疑问