指针类型的意义

简介: 指针类型的意义

image.png

调试可以看出不论是声明类型的指针变量,他的字节大小都是8个字节(在32位平台上是4个字节,在64位平台是8个字节),在大小上,指针类型没有任何区别。

TIP:一个十六进制位==4个二进制位

原因:

假设1111是一个二进制位所能够表达的最大值,十进制表示就是15,而15就等于十六进制最大的表示字母f,所以为了能够让二进制位更加正确的表示十六进制位,直接最大限度让4个二进制位表示1个十六进制位

第一个意义:

指针类型决定了指针解引用操作的权限有多大

image.png

当指针类型为int*时,进行解引用操作,对应4个字节

image.png

而指针类型为char*时,只能访问第一个字节。

第二个意义:

image.png

可以看出在指针类型为int*时,+1地址就会增加4个字节,而指针类型为char时,只增加了一个字节。因此可以总结为

指针类型决定了指针走一步,能走多远步长

总结:

  • 指针类型决定了指针解引用操作符的权限有多大。
  • 指针类型决定了指针走一步,能走多远(步长)、

应用:

image.png

解析:指针类型是int,而数组类型正好也是int,所以p+i访问的就是每个数组元素的下标的地址,然后解引用就可以对数组里面的元素进行赋值。

根据需求,设置不同类型的指针,本题需要我们对数组元素进行赋值,此时就需要int类型的指针,如果对数组的每一个字节进行变动,就需要char*的指针。

相关文章
|
5月前
|
存储 C语言
文件的类型指针
文件的类型指针
50 0
|
5月前
|
编译器 C语言
void的指针类型
void的指针类型
37 0
|
5月前
|
存储 程序员 C++
在C++编程语言中指针的作用类型
在C++编程语言中指针的作用类型
50 0
|
3天前
|
C语言 C++
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
【C语言】指针篇-一篇搞定不同类型指针变量-必读指南(3/5)
|
14天前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
2月前
|
存储 安全 Go
深入理解 Go 语言中的指针类型
【8月更文挑战第31天】
15 0
|
4月前
|
编译器 C++
函数指针和函数对象不是同一类型怎么替换
函数指针和函数对象不是同一类型,为何可替换用作同一函数的参数
|
4月前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
41 0
|
5月前
|
存储 安全 C语言
void指针类型详解
void指针类型详解
47 2
|
4月前
|
图形学 Windows
程序技术好文:记录类型指针
程序技术好文:记录类型指针
19 0