我有一个关于将c字符串传递给函数的问题.
如果我有一个功能:
void reverse(char* c){
//here is the reverse code
}
Run Code Online (Sandbox Code Playgroud)
主要:
int main(){
char* c1="abcd";
char c2[5]="abcd";
char * c3=new char[5];
c3="abcd";
}
Run Code Online (Sandbox Code Playgroud)
在我的测试中,只有c1不允许传入函数,其他两个工作正常.我想知道为什么c1是错误的用法?非常感谢你!
你的代码是C++,而不是C; new char[5]
是C中的语法错误
C和C++是两种不同的语言.在C++中,字符串文字是const
,并且将字符串文字传递给接受char*
参数的函数是一个错误.您应该从C++编译器获得一条错误消息(您没有打算向我们展示).
(如果你使用的是C编译器,它会接受一个类似的调用reverse("foo")
,但它会抱怨new char[5]
.)
归档时间: |
|
查看次数: |
1241 次 |
最近记录: |