常量指针就是允许该指针指向受常量约束的变量,例如,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://blog.sciencenet.cn/blog-458387-460863.html
上一篇:
关于命题逻辑的内容下一篇:
关于《A Structured Programming Approach using C》