指针变量与其余变量的一个区别:
int *i 能通过*来访问该指针,并能改变该指针所指对象的值 如int *i=&p ;cout<<*i; *i=1;
而对于其余变量如int i 不能使用*来访问 即使i存的值为一个地址 而对这种变量可使用&来获得地址
如int p=100;int *i=&p;此时i的本身的值为p的地址,而*i为p的值为100 *i=90 等同于 p=90
但如果指针指向常量 则声明该指针时的也要把它申明为指向常量的指针 如const int *p;他指向的值也为一个常量如const int a=3000; *p=a;或者直接*p=&a (该常量为a的地址)
注:若p被申明为指向常量的指针,则p可改变指向,但不能改变p指向的值 如
int a;
const int *p=&a; //p为指向常量的指针,该常量为a的地址
int b; //
p=&b; //可行,改变p的指向为另一个常量:b的地址
*p=1; //不行,不能改变该常量对象的值,(常量对象的值无法改变)
const int q=10;
*p=q; //不行 理由同上
原文:https://www.cnblogs.com/yedoukkk/p/14496132.html