关闭

常量指针和指针常量

527人阅读 评论(0) 收藏 举报
分类:
常量指针,就是指向常量的指针,关键字 const 出现在 * 左边,表示指针所指向的地址的内容是不可修改的,但指针自身可变。
指针常量,指针自身是一个常量,关键字 const 出现在 * 右边,表示指针自身不可变,但其指向的地址的内容是可以被修改的。

例:
        常量指针: const char* ptr = “hello”
        指针常量: char* const ptr = “hello”

另外常量指针有两种写法:const既可写在类型前,又可写在类型后。如上面的例子,常量指针:char const * ptr = “hello” 也是正确的。


void f1(char* p)
{
   (1)   char s[] = "Gorm";
   (2)   const char* pc = s;   //指向常量
   (3)   pc[3] = 'g';   //错误:pc是指向常量的
   (4)   pc = p;   //ok

   (5)   char *const cp = s;   //常量指针
   (6)   cp[3] = 'a';   //ok
   (7)   cp = p;   //错误:cp是常量指针

   (8)   const char *const cpc = s;   //到const的const指针
   (9)   cpc[3] = 'a';   //错误:cpc指向常量
   (10)   cpc = p;   //错误:cpc本身是常量
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:515686次
    • 积分:3681
    • 等级:
    • 排名:第9132名
    • 原创:35篇
    • 转载:135篇
    • 译文:0篇
    • 评论:79条
    最新评论