关于const的一些东西
1、char greeting[] = "HELLO";
2、char * p1 = greeting;//non-const pointer,non-const data
3、const char * p2 = greeting;//non-const pointer,const data
4、char * const p3 = greeting;//const pointer, non-const data
5、const char* const p4 = greeting ;//const pointer, const data
将1与其他2~4的语句组合后,对第一句有什么影响没?这全部语句放在这里有关系吗?
等待这周的验证~
#include "iostream.h"
int main()
{
char greeting[] = "HELLO";
char * p1 = greeting;//non-const pointer,non-const data
const char * p2 = greeting;//non-const pointer,const data
char * const p3 = greeting;//const pointer, non-const data
const char* const p4 = greeting ;//const pointer, const data
// greeting[0] = 'O';
*p1 = 'O';
// *p2 = 'O';//不行
// *p3 = 'O';
// *p4 = '0';//不行
cout<<p1<<endl;
cout<<p2<<endl;
cout<<p3<<endl;
cout<<p4<<endl;
if(p1 == greeting)
cout<<"p1 = greeting"<<endl;
if(p1 == p2)
cout<<"p1 = p2"<<endl;
if(p1 == p3)
cout <<"p1 = p3"<<endl;
if(p1 == p4)
cout<<"p1 = p4"<<endl;
cout<<endl;
char greeting1[] = "HELLO1";
// greeting1 ++;
p1 = greeting1;
p2 = greeting1;
// p3 = greeting1;//不行
// p4 = greeting1;//不行
p1 ++;
p2 ++;
// p3 ++;
// p4 ++;
cout<<p1<<endl;
cout<<p2<<endl;
cout<<p3<<endl;
cout<<p4<<endl;
if(p1 == p2)
cout<<"p1 = p2"<<endl;
if(p1 == p3)
cout <<"p1 = p3"<<endl;
if(p1 == p4)
cout<<"p1 = p4"<<endl;
return 0;
}
//***************************************************************************
3、const char * p2 = greeting;//non-const pointer,const data
这个const data不能通过指针修改数据,但是却可以通过其他指针修改数据,那么这所谓的const data则是不能通过该指针修改数据的指针咯~