汕尾做网站,免费的企业网站建设,百度收录收费 重大网站,郑州前端培训机构【转】作者#xff1a;xwdreamer 出处#xff1a;http://www.cnblogs.com/xwdreamer 对于指针和常量#xff0c;有以下三种形式都是正确的#xff1a; const char * myPtr char_A;//指向常量的指针
char * const myPtr char_A;//常量的指针
const char * con… 【转】作者xwdreamer 出处http://www.cnblogs.com/xwdreamer 对于指针和常量有以下三种形式都是正确的 const char * myPtr char_A;//指向常量的指针
char * const myPtr char_A;//常量的指针
const char * const myPtr char_A;//指向常量的常量指针 下面依次对这三种类型进行介绍。 因为*操作符是左操作符左操作符的优先级是从右到左对于 1.常量指针(Constant Pointers) int * const p 先看const再看* 是p是一个常量类型的指针不能修改这个指针的指向但是这个指针所指向的地址上存储的值可以修改。 实例1 #includeiostream
#includestdlib.h
using namespace std;void main()
{int i130;int i240;int * const pii1;//这里的pi指针式常量。//pii2; //注意这里pi不能再这样重新赋值了即不能再指向另一个新地址。所以我已经注释了它。printf(%d\n, *pi ) ; //输出是30i180; //5.想想看这里能用*pi80;来代替吗可以这里可以通过*pi修改i1的值。printf(%d\n, *pi ) ; //输出是80system(pause);
} 实例2 char char_A A;
char char_B B;char * const myPtr char_A;
myPtr char_B; // error - cant change address of myPtr 2.指向常量的指针(Pointers to Constants) const int *p 先看*再看const定义一个指针指向一个常量不能通过指针来修改这个指针指向的值。 实例3 #includeiostream
#includestdlib.h
using namespace std;void main()
{int i130;int i240;const int * pii1;printf(%d\n, *pi ) ; //输出是30pii2; //注意这里pi可以在任意时候重新赋值一个新内存地址i280; //想想看这里能用*pi80;来代替吗当然不能printf(%d\n, *pi ) ; //输出是80
system(pause);
} 实例4 char char_A A;
const char * myPtr char_A;
*myPtr J; // error - cant change value of *myPtr 所以指针p所指向的整型数是一个常量其值不能被修改。 3.指向常量的常量指针 对于“指向常量的常量指针”就必须同时满足上述1和2中的内容既不可以修改指针的值也不可以修改指针指向的值。 4.引入字符数组和字符指针 字符数组和字符指针的定义如下 char a[] I Love You!; //定义了一个字符数组
char *p I Love You!; //定义了一个字符指针 可以将a理解为常量指针而p为指向常量的指针代码实例如下 #includeiostream
#includestdlib.h
using namespace std;void main()
{char a[] I Love You!; //定义了一个字符数组数组名a是一个常量指针指向的位置不变都是数组第一个元素的位置char *p I Love You!; //定义了一个字符指针指针p指向一个字符串常量这个字符串常量不能修改//*(p1)a;//错误不可以修改指针指向的值所以这里注释掉。a[1]a;//常量指针不能修改指针的值但是可以修改指针所指向的值。//ap;//错误a是常量指针不可修改其值。coutaendl;coutpendl;couta[1]endl;cout*(p2)endl;system(pause);
} 输出值为 IaLove You!I Love You!aL 转载于:https://www.cnblogs.com/liez/p/5484860.html