鱼C论坛

 找回密码
 立即注册
查看: 2390|回复: 8

[技术交流] 为什么 int i; i = 10; int max[i];会报错?

[复制链接]
发表于 2014-5-12 20:55:32 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 815116820 于 2014-5-12 20:58 编辑

#include<stdio.h>

main ()
{
     int i;
     i=10;
int max;

}

最佳答案

查看完整内容

C语言规定在{}里必须先定义所有的变量,再使用变量。你在i = 10;使用了变量后企图再定义数组所以报错应该写: int main( void ) { int i; int max[10]; i = 10; }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-12 20:55:33 | 显示全部楼层
C语言规定在{}里必须先定义所有的变量,再使用变量。你在i = 10;使用了变量后企图再定义数组所以报错应该写:
int main( void ) {
  int i;
  int max[10];
  i = 10;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-12 20:59:03 | 显示全部楼层

int max[i];
打不上去!见谅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-12 21:20:21 | 显示全部楼层
本帖最后由 815116820 于 2014-5-12 21:33 编辑

谢谢!但是我定义之后是想调用内部max里面的i,有什么办法呢也就是说我int max[10]之后max内部的i能不能大于10呢?

点评

以通常的收发是不能的,因为定义数组的术后要为数组分配空间,而这个空间必须固定大小  详情 回复 发表于 2014-5-12 22:15
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-12 22:15:39 | 显示全部楼层
815116820 发表于 2014-5-12 21:20
谢谢!但是我定义之后是想调用内部max里面的i,有什么办法呢也就是说我int max[10]之后max内部的i能不能大 ...

以通常的收发是不能的,因为定义数组的术后要为数组分配空间,而这个空间必须固定大小
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-5-12 22:58:42 | 显示全部楼层
仰望天上的光 发表于 2014-5-12 22:15
以通常的收发是不能的,因为定义数组的术后要为数组分配空间,而这个空间必须固定大小

知道了!谢谢
我只是想做出这个函数!找出数组中的最大值
int max(int m,int array[])
{
      int f,k;
      f = k = 0;
     
            
                  while(f <= m){
                        while (array[f] >= array[k]){
                              if(k < m)
                              ++k;
                              else return array[f];
                                                  }
                        ++f;
                        k = 0;
}
                                             }
我错误理解了:实参在函数定义内形参存在的必要性!
其实实参会直接赋值给形参,所以我对于数组宽度的忧虑是完全不存在的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-12 23:04:14 | 显示全部楼层
如果你創造一個可變長度的陣列(數組), 可以用
#define i 10
建議你找尋魚c論壇上有一篇內存的五大區這篇來看看, 看得懂這篇你指標陣列應該很容易就通了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-12 23:15:52 | 显示全部楼层
换编译器就好了,换个支持C99标准的,VC 全系列不完全支持C99标准
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-13 09:18:31 | 显示全部楼层
int *max = (int *)malloc(sizeof(int) * i);
或者.cpp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-24 07:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表