Chinaunix首页 | 论坛 | 博客
  • 博客访问: 223677
  • 博文数量: 28
  • 博客积分: 398
  • 博客等级: 一等列兵
  • 技术积分: 1109
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-07 22:28
文章分类
文章存档

2017年(1)

2014年(3)

2013年(7)

2012年(4)

2011年(13)

分类: C/C++

2011-12-09 15:39:44

Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:
把一个声明从右向左读。

char  * const cp; ( * 读成 pointer to )
cp is a const pointer to char

const char * p;
p is a pointer to const char;

======================================================================
测试代码:
  1. #include <stdio.h>

  2. int main( int argc, char *argv[] )
  3. {
  4.     char p[] = "test string";

  5.     const char * p1 = p; //p1 is a pointer to const char;
  6.     //*(p1 +2 ) = 'L'; // wrong, 内容是常量
  7.     p1 = "new test string p1"; //right,指针可以改


  8.     char * const p2 = p; //p2 is a const pointer to char
  9.     *(p2 + 2 ) = 'L'; // right , 指针是常量,内容可以修改
  10.     //p2 = "new test string p2"; //wrong, 指针是常量不能修改

  11.     fprintf(stdout, "p1=%s\np2=%s\n", p1, p2);

  12.     return 0;
  13. }
阅读(1832) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~