const在c/c++中有什么作用,估计大家都很熟悉了,不罗嗦了,只说明一下在c和c++中的区别
简单来说,c++对const的要求比c严格,如果修改const修饰的变量在c里会出现一个警告,但是可以编译通过,而且变量可以被修改,但是在c++中如果试图修改const变量或者将cosnt修饰的变量传递给一个接受非const的函数作为实参,也会出现编译错误,好了,废话不说,上代码
- //c++ code
- #include <iostream>
-
-
using namespace std;
-
-
void fun2(string &str)
-
{
-
str = "world";
-
}
-
-
void fun1(const string& str)
-
{
-
//fun2(const_cast(str)); // 这样不会出现错误
-
//fun2((string&)str); // 这样也不会出现错误
-
fun2(str); //这里就会出现编译错误
-
}
-
-
int main()
-
{
-
string str("hello");
-
fun1(str);
-
-
cout<<str<<endl;
-
-
return 0;
-
}
剩下的就是c代码,这个没有什么好说的,自己测试一下就行,无论怎么改都是警告,没有错误
说明:本人分别在 gcc 4.4.5 和gcc 4.1.1 进行过测试,结果一致!
阅读(941) | 评论(0) | 转发(0) |