Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7263446
  • 博文数量: 512
  • 博客积分: 12019
  • 博客等级: 上将
  • 技术积分: 6857
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-01 16:46
文章分类

全部博文(512)

文章存档

2024年(2)

2022年(2)

2021年(6)

2020年(59)

2019年(4)

2018年(10)

2017年(5)

2016年(2)

2015年(4)

2014年(4)

2013年(16)

2012年(47)

2011年(65)

2010年(46)

2009年(34)

2008年(52)

2007年(52)

2006年(80)

2005年(22)

分类: C/C++

2011-08-21 21:10:38

typedef char *cstring;
在以下声明中cstr 的类型是什么
extern const cstring cstr;
第一个回答差不多都是
const char *cstr

即指向const 字符的指针但是这 这是不正确的const 修饰cstr 的类型。注意typedef不是define简单的展开。typedef后,cstring是一个助记符,是一个整体,是一个类型。
应该理解为:
typedef   char*   Type; 
const   Type   data;   ==   char*   const   data; 


分析时候注意就近原则,为方便理解类型是可去掉的。
const int * p;  ----〉const *p
int * const p;  ----->* const p

比较指针数组和数组指针的声明,可同时理解运算符结合次序,来理解p到底是何物
int *p[];// 数组
int (*p)[];//指针

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