| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 829 人关注过本帖
标题:这段程序为什么在vs上编译不通过啊啊啊啊啊啊
只看楼主 加入收藏
拜见大佬
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2016-11-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
这段程序为什么在vs上编译不通过啊啊啊啊啊啊
#include<stdio.h>
int main ()
{
    int i,n,*p;
    scanf("%d",&n);
    int a[n];
    for(i=0;i<n;i++)
      a[i]=i+1;
    p=a;
    for(i=0;i<n;i++)
      printf("%d ",*p+i);
    return 0;
}
这段程序为什么在vs上编译不通过啊啊啊啊啊啊


[此贴子已经被作者于2016-11-24 22:18编辑过]

2016-11-24 22:09
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:15 
int a[n];  []里不能为变量
  for(i=0;i<=n;i++)            //i<=n越界
       printf("%d ",*p+i);  

早知做人那么辛苦!  当初不应该下凡
2016-11-24 22:12
拜见大佬
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2016-11-24
收藏
得分:0 
回复 2楼 炎天
但是在int a[n]之前,就已经给n赋值了,我在dev-cpp上运行成功了但到vs上就不行了
2016-11-24 22:16
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:5 
回复 2楼 炎天
不存在越界的情况,因为相当于a[0]+i。本身p的指向是没有变的。
2016-11-24 22:19
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 3楼 拜见大佬
有些编译器支持这样写,有的不行。
用const int试试。
2016-11-24 22:22
拜见大佬
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2016-11-24
收藏
得分:0 
回复 5楼 linlulu001
还是不行
2016-11-24 23:15
拜见大佬
Rank: 1
等 级:新手上路
帖 子:12
专家分:7
注 册:2016-11-24
收藏
得分:0 
回复 2楼 炎天
谢大佬
2016-11-24 23:22
落雪luoxue
Rank: 2
等 级:论坛游民
帖 子:13
专家分:52
注 册:2016-9-29
收藏
得分:0 
新版的VS有一些标准定义的和以前不一样的,比如scanf语句,在2015VS上是不能正常实用的,建议使用dev
2016-11-24 23:44
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 6楼 拜见大佬
怎么可能会不行
除非你是这样写的const int n;那只能说明不懂此时的n必须要赋值,同时你连错误提示都看不懂。
2016-11-24 23:50
快速回复:这段程序为什么在vs上编译不通过啊啊啊啊啊啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016438 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved