gpt4 book ai didi

c - 错误 C2065 : 'cp' : undeclared identifier

转载 作者:行者123 更新时间:2023-11-30 14:20:11 25 4
gpt4 key购买 nike

我是C语言的新手,我在互联网上找到了这个关于字符串和数组的教程,并尝试编写该程序。他们正在使用 eclipse,我正在使用 Visual Studio 2010...请帮助和解释。我遇到这些问题:

error C2143: syntax error : missing ';' before 'type'
error C2143: syntax error : missing ';' before 'type'
error C2143: syntax error : missing ')' before 'type'
error C2143: syntax error : missing ';' before 'type'
error C2065: 'cp' : undeclared identifier
error C2100: illegal indirection
warning C4552: '!=' : operator has no effect; expected operator with side-effect
error C2059: syntax error : ')'
error C2065: 'cp' : undeclared identifier
error C2143: syntax error : missing ';' before '{'
error C2065: 'cp' : undeclared identifier
error C2100: illegal indirection

这是代码:

#include <stdio.h>
#include <conio.h>


int main(char argc, char**argv){
char s[] = "string";
printf("string is: %s\n", s);

for(char *cp = s; *cp !=0; ++cp) {
printf("char is %c\n", *cp);
}
getch();
}

最佳答案

Microsoft 的 C 编译器仅实现 C90 标准(加上一些扩展)。它不完全支持较新的 C99 或 C11 标准。请参阅(并投票!)this bug report on MS Connect鼓励他们添加对现代 C 的支持。This blog entry来自编译器团队的信息还包含一些相关信息。

结果是,您无法在 for 循环的初始化中声明变量。事实上,唯一可以声明变量的地方是 block 的最顶部。

如果将 cp 的声明移至方法 block 的顶部,它将可以正常编译。

int main(char argc, char**argv){
char s[] = "string";
char *cp = s;//move to here

printf("string is: %s\n", s);

for(; *cp !=0; ++cp) {
printf("char is %c\n", *cp);
}
getch();
return 0;// you should return some value
}

或者,您可以在函数体内引入新的 block 作用域。

关于c - 错误 C2065 : 'cp' : undeclared identifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15714183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com