我是靠谱客的博主 精明故事,最近开发中收集的这篇文章主要介绍指针增量和数组的关系,指针偏移的补充,(重要面试),gdp调试,将数组中的n个元素逆序存放3、见怪不怪:指针当成数组名,下标法访问,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、指针增量和数组的关系

//加1  代表了地址偏移了一个类型的字节数(整形数偏移四个字节,char形数偏移了一个字节)

 

再来下标法:

2、指针偏移的补充

 

也可以换一种写法(第12行)

但是呢同样的代码再来一次就会造成数组的越界

如何改正呢?重新让指针回到数组的首元素

 

3、见怪不怪:指针当成数组名,下标法访问

完全可以通过下标法,把3访问出来

//可以把它当成一个数组名来用

 

可以通过下标法,把数组访问出来

 

4、见怪不怪:数组名拿来加

 

也可以用arr

 

 

5、数组名和指针的区别

a++可行否?

 

如果把22行做一下改变

//第五行是指针常量,第六行是指针变量

(第22行指针常量,编译不过)

指针常量不允许++;

指针变量可以++;不过+完之后要往回走

 

 这就不行了

因为涉及到:常量指针  和指针变量

p 是一个指针变量,变量什么意思?它是一个保存地址的变量,它保存的地址是可改的

arr 是一个常变量,1,2,3在内存空间,地址定了就是定了,数组名代表那段空间的开头位置,不能把数组名拿来加,加到后面的位置

sizeof可行否?

//根据9,11,12行知道,只要是个指针就是八个字节

 

6、函数封装数组初始化,遍历

首先先试试gdb

 错误在第八行应该改成scanf("%d",&arr[i])

不过呢  我们可以用gdp 调试

调试方式:在编译的时候加上一个-g选项,加上-g选项可以让编译出来的程序可调式

 gdb就是用来调试程序的

 然后按一下r  进入程序的带运行状态

就可以知道错在哪了。

(Segmentation fault,经常被缩写成segfault,又译为储存器段错误,也称访问权限冲突)

退出的话 ,按一下q

然后再按一下y

 //实际参数,数组的首地址 :名,首个元素的地址

 

为了好看可以再改一下

 (注意第8行和第17行的区别)

可是这里为什么不需要像之前一样初始化呢?(下面第17行)

遍历一个数组,再后面接着遍历这个数组的时候,需要把p 指向数组的首元素

因为他是两个函数,内存空间不同,虽然都叫parr

每次函数调用,都在对形参赋初值

运行结果

也可以改成

7、将数组中的n个元素逆序存放

 

然后再做些改动,修改的更指针一点

最后

以上就是精明故事为你收集整理的指针增量和数组的关系,指针偏移的补充,(重要面试),gdp调试,将数组中的n个元素逆序存放3、见怪不怪:指针当成数组名,下标法访问的全部内容,希望文章能够帮你解决指针增量和数组的关系,指针偏移的补充,(重要面试),gdp调试,将数组中的n个元素逆序存放3、见怪不怪:指针当成数组名,下标法访问所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部