时间:2021-05-19
常(量)指针
常指针就是我们说的指向常量的指针,顾名思义,它是用来指向常量的。
用常指针指向常变量
实际上,C++规定只能用指向常变量的指针指向常变量,普通指针指向它就会报错,原因也很容易理解,我们用普通指针指向常变量之后,有可能就会进行改变常变量数值的操作,这样做是不被允许的。
常指针的定义方法:
复制代码 代码如下:
const 类型名 * 常指针名;
下面是它的一个简单的使用示例:
程序1.1.1
复制代码 代码如下:
#include<iostream>
using namespace std;
int main()
{
const int i=5;//定义一个int型常变量
const int *p;//定义一个int型常指针
p=&i;//用常指针指向常变量
cout<<*p<<endl;
return 0;
}
运行结果:
如果我们使用普通指针变量来指向常变量:
程序1.1.2
复制代码 代码如下:
#include<iostream>
using namespace std;
int main()
{
const int i=5;//定义一个常变量
int *p;//定义了一个int型指针
p=&i;//使用一般的指针指向常变量
cout<<*p<<endl;
return 0;
}
就会报错:
用常指针指向一般变量(非const型变量)
用常指针也是可以指向一般变量的,不过不可以通过常指针来更改一般变量的值,但是可以通过一般变量的变量名来修改变量的值。
下面看一个示例:
程序1.2.1
复制代码 代码如下:
#include<iostream>
using namespace std;
int main()
{
int i=5;//定义一个一般变量
const int *p;//定义了一个常指针
p=&i;//使用常指针指向一般变量
cout<<*p<<endl;
i=10;//通过一般变量的变量名来修改值
cout<<*p<<endl;
return 0;
}
运行结果:
如果我们使用常指针来修改一般变量的值:
复制代码 代码如下:
*p=10;
就会报错:
小结:常指针可以指向常变量和一般变量,但是都不能通过指针改变它指向的变量的值。
指针常量
指针常量是指的指针本身就是一个常变量,一经赋初值就不可以被更改。
上面已经说过,只有常指针才可以指向常变量,所以指针常量只可以指向一般变量,而且一旦赋给了初值,就不可以再更改。
定义方法:
复制代码 代码如下:
类型名 * const 指针常量名=变量地址;
因为指针是常变量所以它在定义的时候就应该赋初值。
一个程序示例:
程序2.1
复制代码 代码如下:
#include<iostream>
using namespace std;
int main()
{
int i=5;//定义一个一般变量
int * const p=&i;//定义了一个指针常量
cout<<*p<<endl;
*p=30;//通过指针来改变指向的变量的值
cout<<*p<<endl;
return 0;
}
运行结果:
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
函数指针函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型变、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调用函数、
结构指针变量:结构指针变量的说明和使用一个指针变量用来指向一个结构变量时结构指针变量中的值是所指向的结构变量的首地址。通过结构指针即可访问该结构变量,这与数组元
指向对象的常指针将指向对象的指针变量声明为const型,并使之初始化,这样指针值始终保持为其初始值,不能改变。复制代码代码如下:Timet1(10,12,15)
常量指针是指--指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量
定义:结构体变量的指针就是该变来那个所占据的内存段的起始地址。可以设一个指针变量,来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。设p是指向结构