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个元素逆序存放相关推荐

  1. 最优解法——7-3 将数组中的数逆序存放 (20 分)——10行代码AC

    励志用尽量少的代码做高效的表达. 题目描述 本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素. 输入格式: 输入在第一行中给出一个正整数n(1≤n≤1 ...

  2. 输入一个数组,逆序存放在另一个数组并输出

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p73 4.1.2 上级实训内容 [实训内容1]在1个数组中输入10个数,逆序存放在另一个数组中. #i ...

  3. PTA-7-1 将数组中的数逆序存放 (20分)(C语言)

    本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素. 输入格式: 输入在第一行中给出一个正整数n(1≤n≤10).第二行输入n个整数,用空格分开. 输出 ...

  4. PTA 【java】7-2 将数组中的数逆序存放 (20 分)

    本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素. 输入格式: 输入在第一行中给出一个正整数n(1≤n≤10).第二行输入n个整数,用空格分开. 输出 ...

  5. PTA 数组 7-2 逆序存放数组中的数据,并输出指定元素

    本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按要求输出指定的数组元素. 输入格式: 在第一行中给出一个正整数n(1≤n≤10).第二行输入n个整数,用空格分开.第三行输 ...

  6. c语言指针字符串逆序存放,C语言指针实现字符串的反转

    题目要求: 编写程序:从键盘任意输入一个字符串,输出该字符串. 然后,将该字符串逆序存放后再输出,要求用字符指针完成. 代码: //解法一 #include #include int main() { ...

  7. C语言将数组中的值逆序存放

    C语言将数组中的值逆序存放 #include<stdio.h> #define N 5 int main(){int a[N], i, temp;printf("请输入一个数组: ...

  8. C语言实现对一维数组所有元素排序,然后将m1到m2之间的元素逆序

    C语言实现一维数组排序和逆序 本例用的是选择排序,先找出数组中最小的元素换到数组开头,再找出剩余未排序元素中的最小元素换到前面找出的最小元素之后,以此类推. #include <stdio.h& ...

  9. 一维数组的使用:逆序输出数据/:任意输入5个数据,存放于数组,编程实现将这5个数据逆序存放并输出

    任意输入5个数据,存放于一维数组,编程实现将这5个数据逆序存放并输出 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int ma ...

最新文章

  1. AD7606数据采集板使用ASCII码传递BINARY数据
  2. java和c++的区别大吗_安徽成人高考和自考区别大吗?为什么推荐选成人高考?
  3. 【AndroidSupport】LinearLayoutCompat
  4. 前端入门之——jquery day9
  5. EDITOR-CALL语句的使用:修改abap内表的内容(代码摘抄)
  6. Jenkins pipeline JENKINS_NODE_COOKIE踩坑记录
  7. 基于leveldb,levigo做二次开发
  8. php zend 多个站错误,php – 如何显示Zend框架抛出的异常错误
  9. 坐标不显示_Simpack不显示坐标轴方向的解决方法
  10. project facets中没有dynamic_C++强制类型转换操作符 dynamic_cast
  11. 使用pymongo连接mongodb时报错:pymongo.errors.OperationFailure: not authorized
  12. 活在当下本意是抑制欲望的无度
  13. 折腾BIOS,改开机logo图标
  14. HP LaserJet P1108驱动安装
  15. 【vue项目实战】Vue工程化项目--猫眼电影移动端(三)
  16. java代码实现龙卷风_程序设计-理解java继承-遁地龙卷风
  17. linux系统防篡改,网站防篡改脚本
  18. SLD各地物配置文件
  19. 基于java博网即时通讯软件的设计与实现
  20. typeScript的定义类型:不能将类型“Timeout”分配给类型“number”;

热门文章

  1. 【s操作】轻松优雅的保存微信群图片和朋友圈图片
  2. 【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真
  3. 基于并联SVM支持向量机训练HOG特征提取的人员目标提取
  4. 转:数学之美番外篇:平凡而又神奇的贝叶斯方法 收藏
  5. Scrum立会报告+燃尽图(十一月十八日总第二十六次):功能开发与讨论贡献分配规则...
  6. Redux 莞式教程 之 简明篇
  7. 桌面开发者的界面故事,该醒醒了
  8. apache在windows上开启gzip的方法
  9. 创建Qt对话框一般步骤
  10. 软件设计中的具体问题