C语言中Const指针变量(常指针)

来源:本站
导读:目前正在解读《C语言中Const指针变量(常指针)》的相关信息,《C语言中Const指针变量(常指针)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C语言中Const指针变量(常指针)》的详细说明。
简介:Const指针变量只保护其Value值不被改变,并不能保护指针所指向的地址中的值不被改变,下面一起来学习一下:

C语言中,指针是最难理解的一部分,尤其是Const指针变量。

Const指针变量只保护其Value值不被改变,并不能保护指针所指向的地址中的值不被改变,下面是针对Const指针的一个小练习:

#include "stdafx.h"

int main(int argc, char* argv[])

{

//定义基本类型的const变量,const 位置在哪儿都可以

const int x = 2,y = 3; //两个常量

//定义一个非const变量

int z = 3; //一个普通变量

//定义一个指向常的指针

const int* pc = &x; //指向常量的指针

//定义一个常指针

int* const cp = &z; //常指针

//定义一个非const指针

int* pp = &z; //int 型指针

// x = y; //x 为const变量,所以x的值不可以被更改 只能做右值

pc = &z; //可以,pc是一个指向常量的指针,不能通过该指针去修改指针所指向的内存空间的值,但是,该指针可以指向别的变量

// *pc = 10; //不可以,*pc所指向的地址为const变量,其值不可更改 pc是一个指向常量的指针,不能通过该指针去修改指针所指向的内存空间的值

// *pc = y; //不可以,同上

// *pc = 5; //同上

pc = pp; //可以,pc为指针,其值可被改变 pc是一个指向常量的指针,pp是一个普通指针,用一个普通指针给一个指向常量的指针赋值是可以的

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

z = 5; //可以,给一个非const变量赋值是可以的

z = x; //可以,用一个const的变量给一个非const变量赋值是可以的

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

// cp = &x; //不可以,cp为常指针,指针的值不能被修改,给常指针赋值是错误的

// pp = &x; //不可以,pp是非const指针,原则上来讲给它赋值是可以的,在不同的编译器下有不同的结果

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

pp = cp; //可以,常指针可以赋值给一个普通指针

const int * const pp = &a; //双const 既保护指针又保护内存变量

printf("Hello World!n");

return 0;

}

提醒:《C语言中Const指针变量(常指针)》最后刷新时间 2024-03-14 00:57:33,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C语言中Const指针变量(常指针)》该内容的真实性请自行鉴别。