Chinaunix首页 | 论坛 | 博客
  • 博客访问: 156319
  • 博文数量: 39
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 413
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-26 15:07
文章分类

全部博文(39)

文章存档

2012年(5)

2011年(16)

2010年(14)

2009年(4)

我的朋友

分类: C/C++

2011-03-11 17:12:33

const在c/c++中有什么作用,估计大家都很熟悉了,不罗嗦了,只说明一下在c和c++中的区别
简单来说,c++对const的要求比c严格,如果修改const修饰的变量在c里会出现一个警告,但是可以编译通过,而且变量可以被修改,但是在c++中如果试图修改const变量或者将cosnt修饰的变量传递给一个接受非const的函数作为实参,也会出现编译错误,好了,废话不说,上代码

  1. //c++ code
  2. #include <iostream>

  3. using namespace std;

  4. void fun2(string &str)
  5. {
  6.     str = "world";
  7. }

  8. void fun1(const string& str)
  9. {
  10.     //fun2(const_cast(str));  // 这样不会出现错误
  11.     //fun2((string&)str); // 这样也不会出现错误
  12.     fun2(str); //这里就会出现编译错误
  13. }

  14. int main()
  15. {
  16.     string str("hello");
  17.     fun1(str);

  18.     cout<<str<<endl;

  19.     return 0;
  20. }

剩下的就是c代码,这个没有什么好说的,自己测试一下就行,无论怎么改都是警告,没有错误

说明:本人分别在 gcc 4.4.5 和gcc 4.1.1 进行过测试,结果一致!








阅读(941) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~