junqing的个人博客分享 http://blog.sciencenet.cn/u/junqing

博文

关于常量指针和指针常量的区别

已有 3700 次阅读 2011-6-30 15:22 |系统分类:科研笔记

常量指针就是允许该指针指向受常量约束的变量,例如,const int a=10; const int* pa= &a;
当然,该指针也可以指向一般变量,例如,int b=20; const int* pb=&b;
另一种定义方式是: int const *pb , 与 const int* pb是等价的.
常量指针的值是可以改变的,例如,pa++, pb++.
 
指针常量就是指针的值是常量的,一旦被初始化就不能被改变.例如, int c=30; int* const pc=&c;
指针常量的值不能改变,但是所指向的变量是可以改变的;另外,它不允许指向受常量约束的变量.
 
还有就是它们的混合形式, const int* const pd;这个应该很容易理解.
 
下面的代码实例可以很好地解释它们之间的区别:
 
#include<stdio.h>
#include<stdlib.h>
int main()
{  
 const int a=10;
 const int* pa;
 int const *pb;
 int b=20;
 pa=&a;
 //(*pa)++; //error
 printf("The constant value a= %dn",*pa);
    pa++;
 pb=&b;
 //pb=&a; //valid
 b++;   // valid
 //(*pb)++; //error
 printf("The non-constant value b= %dn", *pb);
    pb++;
 int c=30;
 int* const pc=&c;
    // int* const pc=&a;  //error
    printf("The non-constant value c= %dn", *pc);
 const int d=40;
 const int* const pd=&d;
 // const int* const pd=&c;  //valid
 printf("The constant value d= %dn",*pd);
 return 0;
}


https://wap.sciencenet.cn/blog-458387-460863.html

上一篇:关于命题逻辑的内容
下一篇:关于《A Structured Programming Approach using C》
收藏 IP: 111.186.59.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 07:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部