【指针初解】

本文详细介绍了C++中的指针,包括指针的定义、指针变量、野指针及其规避方法、指针运算、指针与数组的关系、二级指针以及指针数组。内容涵盖指针的基础概念、类型、运算规则和常见应用,帮助读者深入理解C++指针。
摘要由CSDN通过智能技术生成


在这里插入图片描述

一、指针是什么?

1.指针是内存中一个最小单元(字节)的编导,也就是地址。
2.平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。
3.int a=0;int* p=&a;
在 int* p 中,int 是指p所指向的 a 的类型是int 型;int*是p的类型。

(一)、指针变量

我们可以通过取地址操作符(&)取出变量的内存起始地址,把地址存放到一个变量中,这个变量就是指针变量。
总结:
指针变量是用来存放地址的变量,(存放在指针中的值都被当成地址处理)。

大小:
在32位的机器上,一个指针变量的大小是4个字节。
在64位的机器上,如果有64个地址线,那一个指针变量的大小是8个字节。

二、指针和指针类型

1.指针类型决定了:指针进行解引用操作的时候,访问几个字节(权限)。
如:
char* 的指针解引用访问1个字节
int* 的指针解引用访问4个字节
double* 的指针解引用访问8个字节

在这里插入图片描述
在这里插入图片描述

2.指针类型决定了指针的步长(向前/向后 走一步是多大的距离)
int* 指针+1,意思是跳过一个整形,也就是向后走4个字节
char* 指针+1,意思是跳过一个整形,也就是向后走1个字节
double* 指针+1,意思是跳过一个整形,也就是向后走8个字节

在这里插入图片描述

三、野指针

概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)。

(一)、成因:

1.指针未初始化

#include<stdio.h>
int main()
{
   
	int* p;//局部变量指针未初始化,默认值为随机值
	*p = 20;
	return 0;
}

2.指针越界访问

#include<stdio.h>
int main()
{
   
	int arr[10] = {
    0 };
	int* p &#
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是李不是鲤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值