C/C++ 指针部分总结1

来源:互联网 发布:网易我的世界 linux 编辑:程序博客网 时间:2024/06/02 02:20

原文:http://www.verydemo.com/demo_c92_i245744.html

1、指向常量的指针,防止通过指针去修改变量的值,而不管变量是否我const
int x =3;
const int *pc = &x;

*pc = 888;
printf("x=%d\n",x);

2、指向常量的指针,该指针可以指向别的变量,指针的value是可以更改的;

pc  = &bb ; //可以

3、指向常量的指针,不能赋值给一个普通的指针

定义基本类型的const变量 const在哪都可以;
const Int x=2,y=3;

定义一个非const变量;
int z =3;

定义一个指向常量的指针;。。常指针!!!保护指针不被修改
const int *pc = &x;

定义一个常指针
int *const cp = &z;

定义一个非const 指针

int *pp = &z;

z=y; //const 变量只能做右值,不能做左值

x = y x是const变量,所以x的值是不可修改的

pc  = &z;//pc是指向常量的指针,不能通过该指针修改指针所指的内存空间的值

//但是,该指针可以指向别的变量;

*pc = 10;//this is false because this *pc 是一个指向常量的指针

*pc = y;//同上;

pc = pp;//pc是一个指向常量的指针。pp是一个普通的指针,用一个普通的
       // 指针给一个指向常量的指针赋值是可以的;

pp = pc;//用一个指向常量的指针赋值给一个普通指针 ;不可以;
         //如果可以,那么就可以通过普通指针去修改内存空间的值了,

z= 5;给一个非const的变量赋值
z= x;//const 给非const 去赋值也是可以的额!!!!

*cp = x;//通过常指针去修改指针指向变量的值,原则上来讲是可以的;
        //如果指向的变量是const的,那么不同编译会有不同的结果;

cp = &x;//常指针 指针的值不能被修改。给常指针的地址错误的


int swap (const int*)保护内存区域不被修改

pp  = &x;//可以。,非const指针;!!!!!!!!!!!!!


const char* str;;//指向常量的指针指针是不可修改内容,但是是可以被读取的
不能赋值给一个普通指针
0 0
原创粉丝点击