C++指针(一)

一、指针变量的声明

        指针也是一种数据类型,具有指针类型的变量我们称为指针变量。指针变量书用于存放单元地质的。

        访问一种变量通常有两种方式,第一种通过变量名直接访问;第二种是通过指针变量间接访问。

        作为一种数据类型,指针的使用也是先声明,后引用,声明指针的语法形式为:

        数据类型 * 标识符;

        其中*表示此处声明的变量是指针变量。数据类型可以是任意的,但指针所指向的数据类型必须和指针本身的数据类型相同。

二、与地址相关的运算符“*”和“&”

        “*”指针运算符:1)在声明指针变量时使用“*”,“*”表示声明的变量是指针类型的变量;2)在引用时使用“*”表示读取指针指向的内存单元存储的内容。

        “&”取址运算符:在给指针变量赋值时使用,表示读取该内存单元的地址。

三、指针的赋值

        定义一个指针,我们只是得到了一个指针变量,并不明确该指针指向哪个内存单元。所以要对指针变量进行赋值之后,才能正常使用。

        赋值的两种方法:

        (1)在定义指针的同时进行初始化赋值,语法形式为:

                存储类型 数据类型 * 指针名=初始地址;

const int* ptr = & a;

        (2)在定义之后,单独给指针赋值:

                指针名=地址。

例:

#include<iostream>
using namespace std;
int main()
{
	int i;
	int* ptr = &i;
	i = 10;
	cout << "i=" << i << endl;
	cout << "*ptr=" << *ptr << endl;
	return 0;
}

关于指针的类型,还应注意:

(1)声明指向常量的指针,但不能通过指针来修改所指向对象的值,但指针本身可以改变它所指向的对象

int a;
const int* ptr = &a;
int b;
*ptr = b;//错误,不能通过ptr来修改所指向对象的值。
ptr = &b;//正确,可以修改ptr指向的对象。

(2)声明指针类型的常量,这时指针本身的值不能被改变

int a;
int *const ptr;
ptr = &a;
int b;
ptr = &b;//错误,ptr是指针常量,值不能被改变。

(3)void类型指针的使用。前文提到指针只能指向和指针同类型的变量,但void类型的指针可以指向任何类型的变量,经过试用类型显示转换,通过void类型的指针可以访问任何类型的数据。

#include<iostream>
using namespace std;
int main()
{
	void* ptr;
	int i = 5;
	ptr = &i;
	int* p = static_cast<int*>(ptr);
	cout << "*p=" << *p << endl;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值