C语言中Const指针变量(常指针)
来源:互联网 发布:淘宝网沙滩半身裙 编辑:程序博客网 时间:2024/05/17 01:01
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指针变量(常指针)
- C语言中Const指针变量(常指针)
- C语言中Const指针变量
- c语言中const修饰指针变量
- c++中const基本用法(常变量、常指针、常对象)
- c语言中const 类型变量地址赋值给指针。
- C++(常)引用,const,指针引用
- C语言基础---const常指针的使用
- C 语言中 const,指针,数组例子
- C语言之常指针
- C语言中const与指针的指针
- 4、C语言中 指向指针变量的指针变量
- C中指针const
- C语言指针变量
- C语言指针变量
- C语言中指针变量的初始化
- C 语言中指针变量的运算
- 单片机中C语言指针与变量
- ERROR 2003 (HY000): Can't connect to MySQL server on '***.**.***.***' (110)
- 可以下拉刷新、上拉获取更多的SwipeRefreshAndLoadLayout
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- split函数处理mysql时间问题及截取url
- Azure入门学习(三)
- C语言中Const指针变量(常指针)
- K近邻法(knn)与k-means(附源代码)
- 博弈论—Nim游戏
- pdf文字提取软件该怎么选
- android 从网上解析Json获取天气情况
- Qt graphic item日记
- Xcode6中如何切换storyboard为xib
- rtti
- 搜索引擎-查询