Chinaunix首页 | 论坛 | 博客
  • 博客访问: 703889
  • 博文数量: 129
  • 博客积分: 2221
  • 博客等级: 大尉
  • 技术积分: 1620
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-09 11:27
个人简介

do{goodgoodstudy();daydayup();}while(!died)

文章分类

全部博文(129)

文章存档

2012年(26)

2011年(103)

分类: 系统运维

2011-05-20 21:23:47

const char*, char const*, char* const 将*读成  pointer to(指向),
反着念就ok了
 

char * const p; // p is a const pointer to char; p是指向char的常量指针(char不是常量)

char const * p; // p is a pointer to const char;  p是指向常量char的指针(p不是常量)

const char * p; // 同上。因为C 标准规定,const关键字放在类型或变量名之前等价的。C 里面没有const*的运算符

 
const char *name="ao";   等同 char const *name="ao";  name是指向常量char的指针
name的指向可以改变如name = "abc";    name所指的内存不能被修改,例子如下。
char *const name = "tai" ;name是指向char的常量指针,name只能指向一个地址,name = "abc"会报错
strcpy(name,"bc");由于“tai”在常量区,所以name所指的没有内存空间,应该写成char *tname =(char *)malloc(10);  char  * const name = tname;   strcpy(name,"k");  free(tname);
 
程序可以写的很乱,但千万别内存泄露,这个令人头疼。
 
阅读(883) | 评论(0) | 转发(1) |
0

上一篇:dbx用法讲解

下一篇:fgetc、EOF

给主人留下些什么吧!~~