做网站容易 但运营难,wordpress 抄袭查询,上海住房和城市建设厅网站,福步外贸官网指针变量、指针常量与常量指针
一、指针变量
定义#xff1a;指针变量是指存放地址的变量#xff0c;其值是地址。 一般格式#xff1a;基类型 指针变量名;#xff08;int p#xff09; 关键点#xff1a; 1、int * 表示一种指针类型(此处指int 类型)#xff0c;p(变量…指针变量、指针常量与常量指针
一、指针变量
定义指针变量是指存放地址的变量其值是地址。 一般格式基类型 指针变量名;int p 关键点 1、int * 表示一种指针类型(此处指int 类型)p(变量名)即为定义的指针变量名。 2、在定义指针变量时必须指定基本类型知道数据类型才能按存储单元的长度以及数据的存储形式正确地取出数据 3、指针变量中只能存放合法的地址类型不要将其他类型数据赋给指针变量 4、“ * ”指针运算符表示指针变量所指向的变量“ ”取地址运算符表示取变量的地址 5、引用指针变量主要有以下三种情况
int date 0; //定义变量
int *Pointer; //定义指针变量//1、给指针变量赋值
Pointer date;//把date 的地址赋给指针变量pointer指针变量pointer的值时变量date 的地址pointer指向date //2、引用指针变量指向的变量
printf(%d,*pointer); //输出指针变量pointer所指向变量的值即变量date的值*pointer等价于date
*pointer 1; //将整数1赋值给指针变量pointer所指向的变量的值即相当于把1赋值给date 等价于“date 1”//3、引用指针变量的值
printf(%p,pointer);//以八进制数形式输出指针变量pointer的值即date 的地址date 注意事项 1、指针变量作为一种变量类型可以作为数组成员指针数组、函数参数、和函数返回值指针函数甚至可以作为保存数组地址数组指针或函数地址的变量指针函数。 2、指针变量可进行以下几种运算操作
二、指针常量
定义是一个常量其值是指针这个值因为是常量所以不能被赋值。
个人理解就是把他看成一个地址格式的常量数据比如在32位机器上有一个地址格式的常量数据0x0000FFF1首先它是作为一个常量存在我们没办法改变它的数据值其次它作为一个地址它有指向固定的内存空间因为没法改变他的值0x0000FFF1那么它指向的这块空间位置就固定了但这个内存空间里放的东西可以改变。 一般格式int* const p 关键点 1.它是个常量 2.指针所保存的地址可以改变然而指针所指向的值却不可以改变 3.指针本身是常量指向的地址不可以变化,但是指向的地址所对应的内容可以变化
注意事项数组名也是一个指针常量所以数组名可以作运算但常量不能作为左值被赋值不能arr 1,但可以arr。char str[4];str “abc”;这种赋值方式也不行的。
int* const p1 a;
a 100; //OK,可以通过原来的声明修改值
*p1 10; //OK,指针常量指向的地址不可以变,但指向的地址所对应的内容可以变
//p1 b; //Error,不可修改即指针常量不可修改其指向的地址三、常量指针
定义又叫常指针可以理解为常量的指针也即这个是指针但指向的是个常量这个常量是指针的值地址而不是地址指向的值。
个人理解就是有一个指针变量这个变量可以指向不同的内存空间但是这个内存空间必须有个条件就是里面存在的数据是个常量不能改变之所以所是指针变量参见以下关键点
一般格式 int const* p; const int* p; 关键点 1.常量指针指向的对象不能通过这个指针来修改可是仍然可以通过原来的声明修改 2.常量指针可以被赋值为变量的地址之所以叫常量指针是限制了通过这个指针修改变量的值 3.指针还可以指向别处因为指针本身只是个变量可以指向任意地址
const int *p1 a;
a 100; //OK,仍然可以通过原来的声明修改值
//*p1 50; //Error,不可修改即常量指针指向的地址所对应的内容不可变
p1 b; //OK,可修改即常量指针可修改其指向的地址注意事项
四、区分方式
指针变量最好区分没什么特点难以区分的是指针常量和常量指针
int const* p; //常量指针const修饰*p*p的内容不可通过p改变但p可以修改*p不可修改
const int* p; //常量指针const修饰*p*p的内容不可通过p改变但p可以修改*p不可修改
int* const p; //指针常量const修饰pp是指针p指向的地址不能改p不能修改*p可修改根据*在const前面还是在后面进行巧记在前是指量改值不改向 总结
讲个通俗易懂例子假如有天你家拆迁给你分房子
指针常量你单身一人时分房居委会给你分个门牌号码地址常量说这是你的房子这个常量指向的内存空间你只根据门牌号到几栋几单元几号房因为门牌号和房号关系是对应好的你改变不了但是你单身啊你还可以决定这房子以后的女主是谁。
常量指针结婚后分房居委会给你个门牌但没填号码说这是你跟你老婆的房告诉你现在人少你和老婆可以选小区内任意空房然后把号码填上且今天之内还可修改但你结婚了你虽然可以任意选房但是改不了里面住的女主了。