同学们终于学到最有意思的东西:指针了。有人说指针是C语言的灵魂。虽然有点夸大,但是事实的确是如此。很多的时候,使用指针,会让过程变得简洁和精巧。这个在以后同学们深入学习使用C语言进行编程的时候就可以理解了。

下面还是按照往常的样子,进行本次知识点的总结:

  • 需要知道,指针本身也是一个变量,在内存中仅仅是存储一个数据,只是这个数据很恰好是一个地址而已;

  • 指针起到一个指向的作用,通过解引用*可以很方便的得到指向目标的内容

  • 一定要记住指针的几种形态:

  1. // 声明
  2. int *pa; // 声明一个名为 p 的指针,需要注意的是,* 号本身仅仅表示 p 是一个指针变量
  3. int a;
  4. // 定义 == 赋值
  5. p = &a; // 将 p 的内存空间中的数据定义为 a 的地址
  6. // 声明且定义
  7. int b;
  8. int *pb = &b;
  9. // 有一个函数,参数是一个指针
  10. int *pa = &a;
  11. int *pb = &b;
  12. int func(int *a,int*b,int *c,int *d);
  13. func(pa,pb,&a,&b); // 函数调用时传入的实参
  14. // 数组和指针的关系
  15. int a[10];
  16. int *parr = a; // 数组名就是数组的地址,也是数组元素 0 的地址

在 C 语言中,数组和指针的界限并不明显,比如在向函数传参的时候,即使你写成

  1. int func(int a[3]){} // 甚至这里写下了数组的长度

但是实际上这里编译器会视作你传递进去int *a的指针,对于一个指针而言,并不能有效的知道它的长度。这就是为什么多数情况下看到的函数,一旦传递入一个指针作为数组的首地址,都会跟随一个int类型的数值作为长度。

指针,务必需要注意,一定要先初始化即定义/赋值后再使用,否则,编译器无法知道你到底想要操作的是哪块内存区域:

  1. int *p;
  2. *p = 0; // error

不过万幸的是,大部分类似于这样的错误,在运行的时候,都会出现非常明显的错误。但是同学们依旧应该对此情况多多用心。

谈到这里,忽然想要跟大家聊聊野指针,可是忽然想到大家都还没有学习过诸如malloc这样的函数,那还是暂时作罢吧。不过类似上面的p就是一个野指针(即它没有指向一个明确的内存区域)。

以下为本次成绩

编号 学号 Cnblogs昵称 代码 总结 附加题 加权得分 备注
1 160809401 付胤 50 85 64 总结错别字较多,代码完成度低
2 160809402 张博洋 -100 -100 -100 总结不是总结,代码不是代码
3 160809403 董宇豪 90 60 78 总结写的过少,一些必要的点没有写到
4 160809404 朱念齐 -100 -100 -100 没有写
5 160809405 芦彦儒 -100 -100 -100 没有写
6 160809406 吴泽轩 0
7 160809407 Leonardo#* -100 -100 -100
8 160809408 iL.linker 100 100 100
9 160809409 gdcs16_409 95 95 95
10 160809410 无声的梦 100 40
11 160809411 刘悦 -100 -100 -100
12 160809412 张磊 90 36
13 160809413 王洪烨 110 90 102 注意到检查传入函数的指针是否为空
14 160809414 纪柏如 110 44 “说明符”这一概念很有意思
15 160809415 闫墨杰 110 100 106
16 160809416 史航 110 95 104 终于有人用强制类型转换了
17 160809417 狂欢 90 -100 14 没有写总结
18 160809418 水母Jam -100 -100 -100
19 160809419 朱钰铖 -100 -100 -100
20 160809420 虞小生 60 90 72
21 160809421 饮冰少年1 100 -100 20
22 160809422 0
23 160809423 李筱 -100 -100 -100
24 160809424 Xzy! 65 90 75
25 160809425 刹那神华 -100 100 -20
26 160809426 zlt.Santorini'Ly 95 95 95 总结细致
27 160809427 江超民 95 90 93
28 160809428 zxkai 95 -100 17
29 160809429 王鑫沐 95 95 95
30 160809430 茉妍 95 95 95
31 160809431 茉莉雨 95 110 101

C语言学习 第十次作业总结的更多相关文章

  1. C语言学习 第九次作业总结

    本次作业练习的内容是二维数组.下面我先简单的说下二维数组的基本知识点: 二维数组其实这个中文概念颇有误导--会让人感觉这是一个两个维度的概念.所以很多的国外的C语言书籍上会称这种数组为多下标数组:即首 ...

  2. C语言程序设计第十次作业

    一.实验内容        1.有5名学生,每名学生有语文.数学和外语3门课的考试成绩.编程统计各学生的总分和平均分以及所有学生各科的平均分.要求成绩在程序中初始化,结果以表格的形式输出.      ...

  3. C 语言学习 第二次作业总结

    本次作业内容,主要有以下几点: 新建 coding 帐号,且使用 coding 上传本次作业的代码 Printf及条件判断语句的使用 作业总结 作业总结: 同学们开始渐入佳境,能够较为流畅的写出合理的 ...

  4. C语言学习 第八次作业总结

    本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...

  5. C语言学习 第七次作业总结

    C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...

  6. 20165320 预备作业2:技能学习心得与C语言学习

    一.技能学习心得 1.你有什么技能比大多数人好? 我觉得我的篮球打得比一般的人好吧,但是也仅仅掌握了大部分基本的篮球技巧,算不上精通. 2.针对这个技能的获取你有什么成功的经验? 我觉得要打好篮球需要 ...

  7. C语言I博客作业12—学期总结

    一.我学到的内容 二.我的收获(包括我完成的所有作业的链接+收获)不能只有作业链接,没有收获 作业次数 作业链接 第一次 C语言I博客作业01 第二次 C语言I博客作业02 第三次 C语言I博客作业0 ...

  8. C语言I博客作业12

    一.我学到的内容 二.我的收获 作业链接 收获 博客第一次作业:https://www.cnblogs.com/gm12/p/11584148.html 第一次作业收获:第一次作业是我初步接触C语言的 ...

  9. 技能收获与C语言学习

    你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...

随机推荐

  1. 大话keepalive

    大话keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期 ...

  2. Unity3d连接SQL Server数据库出现SocketException: 使用了与请求的协议不兼容的地址错误

    这两天,同学问我Unity3d连接SQL Server的问题,当时我只是简单的说:“应该一样吧,就是那简单的几句啊”.之后他让我试了下,我才发现有问题了.故此写下一篇博客,要牢记这件事的教训,操作数据 ...

  3. php的面向对象

    今天PO一段php的面向对象相关知识吧.面向对象的相关概念和理论知识是很抽象的,要结合现实中的事物来理解,这样有助于类比记忆.还有就是要多接触吧,量变引质变这个应该还是一个硬道理吧,有时候量够了的话, ...

  4. Android 手机卫士3--设置中心

    1.要点击九宫格中的条目,需要注册点击事件 // 注册九宫格单个条目的点击事件 gv_home.setOnItemClickListener(new OnItemClickListener() { / ...

  5. Java设计模式 -- 基本原则

    这两个星期开始系统地学习设计模式相关的知识,对每一个原则或者设计模式主要从下面几点分析学习: 定义:简单地描述其作用 解决问题:说明该原则或设计模式解决什么限制条件下的问题. 结构图:绘制相关例子的U ...

  6. atitit.http原理与概论attilax总结

    atitit.http原理与概论attilax总结 1. 图解HTTP 作者:[日]上野宣 著1 2. HTTP权威指南(国内首本HTTP及其相关核心Web技术权威著作)1 3. TCP/IP详解(中 ...

  7. 在xcode中用 swift 进行网络服务请求

    xcode集成开发环境是运行于Mac苹果电脑上用于开发swift应用程序的工具,利用xcode可以很方便.直观的开发OS X和iOS系统所支持的应用程序. 1 开发环境: Mac OS 10.11 X ...

  8. html5上传图片(二)一解决部分手机拍照上传图片转向问题

    本以为解决跨域上传后没有问题了,不成想被测试找出一个问题,那就是在手机上拍照上传后图片会旋转.很头痛,不过没有办法,问题还是需要解决的.在查阅了一系列资料后我找到了相应的解决方案,利用exif.js获 ...

  9. java 接口的作用和好处

    1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...

  10. 实现从Oracle增量同步数据到GreenPlum

    简介: GreenPlum是一个基于PostgreSQL数据库开发的MPP架构的数据库仓库,适用于OLAP系统,支持50PB(1PB=1000TB)级海量数据的存储和处理. 背景: 目前有一个业务是需 ...