【C语言】指针的深度理解(一)
创始人
2024-06-02 01:47:00
0

前言 

我们已经了解了指针的概念,一是指针变量是用来存放地址的,每个地址都对应着唯一的内存空间。二是指针的大小是固定的4或8个字节(取决于操作系统,32位的占4个字节,64位的占8个字节)。三是指针是有类型的,不同的类型决定了指针的访问权限,同时决定了指针加减整数的步长。

字符指针

形式

我们将形如 char* 的指针称为字符指针 。

访问权限及步长

字符指针的类型决定了字符指针只能访问一个一节,加减整数时移动的距离也是一个字节。

对常量字符串的进一步认识

我们将形如 “abcde” 称为字符串常量,当我们让字符指针指向该字符串时。

char* str = "abcde";

字符指针变量str实际上存储的是a的地址,也就是常量字符串首字符的地址,而不是整个字符串的地址。

 

指针数组

指针数组的概念

我们知道,数组是某一相同类型元素的集合,我们之前学过的有整型数组、字符数组、浮点型数组。这一次我们来学习指针数组。

顾名思义,指针数组雷存放的是指针类型地元素,是一个数组。

指针数组的定义

定义

我们以整形指针数组为例。

int* arr[SIZE]

指针数组数组的类型为:

int* [SIZE]

数组指针

数组指针的概念

我们之前学过整形指针、字符指针、浮点型指针,他们都是存放对应类型变量的地址的变量,由此可知,数组指针便是指向数组的指针 

数组指针的定义 

 错误的定义方法:

int* arr[10]

这定义成了指针数组,因为【】的优先级要大于*,arr会与【】先结合成为数组。

正确的定义方法:

int(*arr)[SIZE]

我们需要让 arr 先同  *  结合,表示 arr 是个指针,在加上指向的类型 int 【SIZE】 。

总结

这一篇博客介绍了字符指针、数组指针、指针数组的概念及定义、字符指针存放常量字符串是通过存放常量字符串首字符的地址来实现的。

相关内容

热门资讯

帮忙怎么写句子? 帮忙怎么写句子?着急着急着急啥五金。mQ…用"帮忙"造句:1、对他的帮助,我向他致谢。2、她贬低我...
魔法禁书目录里御坂美琴和当麻扮... 魔法禁书目录里御坂美琴和当麻扮情侣是那集魔法禁书目录第二季第17话 惩罚游戏是魔法禁书目录第二季第1...
树根怎么画 树根怎么画树根没什么捷径,多看图、多临摹,仔细花。请设为满意答案吧
摩托车保险网上怎么买 务必找正...   现在人们除了会为自己配置一辆车以外,有的年轻人还会添购一辆酷酷的摩特车,或者一些生活在不那么发达...
北京七类人不用隔离14天,北京...   20年的开始全国上下就经历了一场非常大的浩劫---新冠肺炎,它威胁了去全国上下所有人的生命,也组...
个人信用贷款一般可以贷多少?信...   现在贷款方式有很多种,最简单的当然还是个人信用贷款,毕竟不是所有平台都可以没有抵押物能贷款,个人...
百万医疗保险一年要交多少保费?...   当今最热门的保险,非百万医疗险莫属,百万医疗险的性价比高,有很高的保额,报销的范围也是非常广的,...
重疾险和医疗险的区别,重疾险和...   医疗条件水平的提高使得大家的寿命不断的延长,人们的生活水平也随之提高。国家也不断的重视医疗水平的...
学龄前儿童过马路交通事故 学龄前儿童过马路交通事故甲方(证照齐全)驾驶小客车国道正常行驶,车速在规定范围内;乙方(4、5岁小孩...
可以带病投保的百万医疗险有吗?...   百万医疗险其实简单的来说就是一款保额高达百万的医疗险。这款保险可以给你报销除了医保报销的剩下一些...