我的编译器会警告,警告类型不同,这是为什么?
本帖最后由 超凡天赐 于 2017-2-20 21:00 编辑@人造人 S1E29:参数和指针 | 课后测试题及答案
http://bbs.fishc.com/thread-77360-1-1.html
(出处: 鱼C论坛)
#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;
}
这样写就没有任何警告和报错 这只是警告,不影响程序执行
小甲鱼老师是想让你理解二维数组的存储方式
人造人 发表于 2017-2-6 16:45
这只是警告,不影响程序执行
小甲鱼老师是想让你理解二维数组的存储方式
为什么答案是九,还是有些搞不懂? 超凡天赐 发表于 2017-2-6 16:58
为什么答案是九,还是有些搞不懂?
本帖最后由 qq1242009750 于 2017-2-7 01:47 编辑
因为你函数中定义的是int a【】【3】而你输入的是 int a 【3】【4】
当编译器检查的时候就会发出警告,你试一试把函数中的 int a 【】【3】 ,改为 int a 【】【4】,就可以了。
如果还有警告,就是编译器的编译检测问题了,有的编译器比较严格,有的编译器比较放松 你编译器还挺洋气的(睾贵的mac)。
所谓下标也是按顺序的,在里是第九个,里第九个数正好是9。
页:
[1]