c语言 指针运算,c语言指针运算符

kodinid 25 0

大家好,今天小编关注到一个意思的话题,就是关于c语言 指针运算问题,于是小编就整理了4个相关介绍c语言 指针运算的解答,让我们一起看看吧。

  1. C语言行指针?
  2. C语言指针可以相减吗?为什么?
  3. c语言的符号运算规则?
  4. 怎样熟练掌握C语言的指针?

C语言行指针?

先举个例子吧,先定义一个二维数组int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}} 数组名a就是一个行指针,a[0]就是一个列指针; 就拿这个例子说吧,a和a[0]虽然地址相同,可是指针指向类型不同,对指针进行+1运算,显然得到的结果是不同的,因此a(行指针)+1中的"1”代表一行中全部元素所占的字节数,而a[0]+1,这里的1则是一个元素所占的字节数,是两个不同的概念。为了说明这个容易搞混的问题,可以用军训中排队点名来说明。

班长逐个检查本班战士是否在队列中,班长每移动一步,走过一个战士,而排长点名只检查本排各各班是否到齐。

c语言 指针运算,c语言指针运算符-第1张图片-安济编程网
图片来源网络,侵删)

排长只从第0班的起始位置走到第1个班的起始位置,看来只走了一步,但实际上他跳过了10个战士,这相当于a+1,班长面对的战士,排长面对的是班,班长相当对列指针,排长相当于行指针。

为了找到某个班内的某一个战士,必须给出两个参数

C语言指针可以相减吗?为什么

如果两个指针向同一个数组,它们就可以相减,其为结果为两个指针之间的元素数目。仍以本章开头介绍的街道地址的比喻为例,***设我住在第五大街118号,我的邻居住在第五大街124号,每家之间的地址间距是2(在我这一侧用连续的偶数作为街道地址),那么我的邻居家就是我家往前第(124-118)/2(或3)家(我和我的邻居家之间相隔两家,即120号和122号)。指针之间的减法运算和上述方法是相同的。

c语言 指针运算,c语言指针运算符-第2张图片-安济编程网
(图片来源网络,侵删)

c语言的符号运算规则?

回答如下:C语言的符号运算规则如下:

1. 加法运算:两个操作数相加,结果为两个操作数的和。

2. 减法运算:第一个操作数减去第二个操作数,结果为两个操作数的差。

c语言 指针运算,c语言指针运算符-第3张图片-安济编程网
(图片来源网络,侵删)

3. 乘法运算:两个操作数相乘,结果为两个操作数的积。

4. 除法运算:第一个操作数除以第二个操作数,结果为两个操作数的商。

5. 取余运算:第一个操作数除以第二个操作数,结果为两个操作数的余数

6. 自增运算:操作数的值增加1。

7. 自减运算:操作数的值减少1。

8. 正负号运算:改变操作数的正负符号。

9. 位运算:对操作数的二进制位进行逻辑运算,包括与、或、异或、取反等操作。

怎样熟练掌握C语言的指针?

需要太多言语,我们来一个简单的比喻,马上掌握指针!

指针指向一个地址,好比张三家住在北京XX街道,那么访问门牌号是北京XX街道,里面住的人就是张三。在程序中地址一般都是0x22223333这样的十六进制数,是唯一的!我们就可以理解为是门牌号。0x22223333里面的值比如是整数50,我们可以理解为是张三。

接下来说明两种情况:

1.指针指向了门牌号:北京XX街道,那指针的值就是这个家里住的人。如果把指针指到另一个门牌号天津XX街道,那指的地方就是不同的房子了,不同的房子里住的当然是不同的人,比如天津XX街道住着李四。这种情况可以说指针指向的地址变了,导致指针的值也变了。

2.如果指针指在门牌:北京XX街道,但是这家里本来住着张三,结果张三搬走了,王五住了进来,这房子里现在住的人是王五了!这种情况我们可以理解为指针指向的地址没变,但是值被改变了。

指针就是这么简单,希望能帮到你哦!

关于C语言的知识,我的文章中有很多干货,初学者可以很快掌握,可以来看看哦。

菜农认为学习C语言的指针非常简单,指针乃地址也!

C语言的指针可以归结为两类,其一为数据指针,其二为函数指针。

前者的类型众多,基本为不同长度的数据数据指针和结构指针之分。

后者的函数指针,实际应用多为函数指针数组。

除了C/C++外,其他编程语言极少有指针,大多的编程语言都取缔了指针,如同反对goto语句一般。

而在嵌入式领域编程时,指针几乎是必备的,例如中断向量即为函数指针数组。

由函数指针和函数别名构成的结构体,就是“COM接口技术”之核心。

所以目前甚至以后很长时间里,在嵌入式领域里,最多的编译器就是C/C++编译器,其他编程语言无法撼动C/C++在嵌入式领域的地位。

到此,以上就是小编对于c语言 指针运算的问题就介绍到这了,希望介绍关于c语言 指针运算的4点解答对大家有用。

标签: 指针 操作数 运算

上一个json c语言解析,c语言json数据解析

下一个学python是系统学习还是目标学习,学python用什么系统