Chinaunix首页 | 论坛 | 博客
  • 博客访问: 927783
  • 博文数量: 177
  • 博客积分: 8613
  • 博客等级: 中将
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-12 04:16
文章分类
文章存档

2012年(12)

2011年(24)

2010年(24)

2009年(75)

2008年(42)

我的朋友

分类: C/C++

2009-11-18 22:06:27

    今天开始看nice.c的时候,和往常一样遇到个初始化:
char const *adjustment_given = NULL;
    于是想写个小测试程序,简单测试一下指针常量和常量指针的区别,下面是测试过程:
1、指向常量的指针

int main(void)
{
        char const *p;
        p = "hello";
        p = "hello world!";

        printf("p:%s\n",p);

}
这里的p,是一个指向字符常量的指针,它指向的内容不能被更改,但是这个指针本身可以被修改
2、指向常量的常量指针

#include

int main(void)
{
        char const * const p = "hello";
        //p = "hello";

        printf("p:%s\n",p);

}
这里的p指向的变量不能被更改,这个指针也不能被更改,否则会编译时报错:
const.c: In function `main':
const.c:6: error: assignment of read-only variable `p'

3、当然还有指向普通变量的常量指针,道理是一样的,掌握这些概念的核心原则是弄明白const参数是修饰的谁,到底是谁不能被改变
阅读(1410) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~