C语言:为啥在Visual Studio 2010中写一句简单的for(i=0;i<6;i++) scanf("%d ",&V[i]);都会提示错误。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:为啥在Visual Studio 2010中写一句简单的for(i=0;i<6;i++) scanf("%d ",&V[i]);都会提示错误。相关的知识,希望对你有一定的参考价值。
错误提示在"&V[i]"中的“i”,提示为:Error:expression must have pointer-to-object type.
V重复定义了吧,第一行定义了int V,而V[i]要求V是指针或数组类型,所以编译器报了类型错误。 参考技术A 能把完整的程序打上来吗追问程序没写完,我把写了的贴上去:
#include
#define N 30
void main()
int V;int n,i,j,s,x;
int V[N],m[N][N];
printf("箱子的容量V为:");
scanf("%d",&V);
printf("物品的种类数为:");
scanf("%d",&n);
printf("物品的体积分别为:");
s=0;
for(i=0;i<n;i++)
scanf("%d ",&V[i]);
......
(太长了,省略号里是一个方法调用,错误提示就在省略号上面的这一行的“i”)
#include
#define N 30
void main()
int V;
int n,i,j,s,x;
int H[N],m[N][N];
printf("箱子的容量V为:");
scanf("%d",&V);
printf("物品的种类数为:");
scanf("%d",&n);
printf("物品的体积分别为:");
s=0;
for(i=0;i<n;i++)
scanf("%d ",&H[i]);
现在对了,我把数组V改成了数组H系统就不报错了,楼下的童鞋们都是正解!
为啥在visual studio 2008中使用DWORD添加头文件windef.h不行,一定要windows.h。
参考技术A 它定义在windows.h;你可以在DWORD上点右键查看定义,其实就是无符号long追问我知道它是无符号long,你在windef.h定义中可以看到typedef unsigned long DWORD;
问题是它是在windef.h中定义的,我引用windef.h怎么不行?
谢谢
你的报错是什么:是未定义吗?哦,我查了下,它原来是C语言头文件,那就会杯具了,因为我用了下,它会覆很多定义,导致很多头文件不能使用,也就是是跟window的很多头文件不兼容
追问报多种错误:
error C2146: 语法错误 : 缺少“;”(在标识符“ContextRecord”的前面)
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
error C2065: “PCONTEXT”: 未声明的标识符
error C2146: 语法错误 : 缺少“)”(在标识符“ContextRecord”的前面)
不管怎么样,谢谢你了哦。
恩,你自己努力吧,说真的我都没用过改头文件,它是个C文件头,会不兼容,即使放在普通的windows
语言程序都会说定义重复;最好都用微软的头文件,不要和c语言头文件混搭
但是我考虑像typedef、unsigned long这些关键字的识别还是需要其他头文件的
该同文件包含于windows。h中 参考技术C 在开头处写上
#define _X86_
即可 参考技术D 参考这里吧,http://catt2000.blog.163.com/blog/static/55810902009215111458361/
以上是关于C语言:为啥在Visual Studio 2010中写一句简单的for(i=0;i<6;i++) scanf("%d ",&V[i]);都会提示错误。的主要内容,如果未能解决你的问题,请参考以下文章
为啥 stoi 函数在 Visual Studio 2010 中可用
为啥我的visual stdio 2010连错误程序也能编译成功。。。。