通俗易懂的C语言指针知识讲解(详细,深入) 1

前言

本篇文章就让我们一起揭开C语言指针的神秘面纱,指针是C语言中特别重要的一个知识点,也是C语言的灵魂所在。可以说C语言学没学好,首先就是要看指针学没学好。本篇的学习目的是从指针的底层讲起,一步一步的不断理解指针。

指针是什么?

内存

讲指针之前让我们先了解一下内存的相关知识:
内存是计算机中非常重要的组成部分,当计算机运行程序时,它会将程序和数据加载到内存中,并在需要时从内存中获取信息。而计算机为了方便管理内存,将内存划分为一个字节大小的内存单元,并且为了方便找到这个内存单元,计算机中会给用到的内存单元,随机生成相应的编号(这个编号就相当于我们生活中的外卖地址),有了这个编号就可以快速找到内存单元,对其进行读写操作,在计算机中这个编号又被称为地址。
注:
32位的机器中有32根地址线,即一共有32bit的二进制位(4字节)
64位的机器中有64根地址线,即一共有64bit的二进制位(8字节)
1字节=8位(二进制)
1KB=1024字节

指针的说明

C语言中又给地址起了一个新的称号叫指针
由此我们可以理解为:
内存单元的编号 = 地址 = 指针。
一段关于指针的代码及其解释:
其中int表示指针指向的数据类型为int类型,*说明p是指针变量,p是指针变量,里面存的是地址。
在这里插入图片描述通过调试结果我们可以看到p变量存的就是i的地址。

取地址操作符(&)和解引用操作符(*)

取地址操作符

&有两种使用情况:
(1)作为位操作符,进行按位与运算,是双目操作符 如 1&0。
(2)作为取地址操作符,取出变量名所在内存的地址,是单目操作符 如&i ,可配合%p打印出地址。
知道了取地址操作符后我们就可以查看任意变量所在内存中的地址了。比如下面这段代码就是,将i变量的地址以16进制的形式打印出来。
示例:

#include <stdio.h>
int main()
{
   
   
	int i = 1;
	printf("%p\n",&i);
	return 0;
}

运行结果图:
在这里插入图片描述这个时候我们就可以很轻松的给指针变量,进行初始化了。
示例:

int main()
{
   
   
	int i = 1;
	int* p = &i;//i在内存中的地址,赋值给指针变量p
	printf("%p\n",&i);
	printf("%p\n", p);
	return 0;
}

运行结果图:
在这里插入图片描述通过上面的运行结果图我们就可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值