C语言学习 第十次作业总结
同学们终于学到最有意思的东西:指针了。有人说指针是C语言的灵魂。虽然有点夸大,但是事实的确是如此。很多的时候,使用指针,会让过程变得简洁和精巧。这个在以后同学们深入学习使用C语言进行编程的时候就可以理解了。
下面还是按照往常的样子,进行本次知识点的总结:
需要知道,指针本身也是一个变量,在内存中仅仅是存储一个数据,只是这个数据很恰好是一个地址而已;
指针起到一个指向的作用,通过解引用
*可以很方便的得到指向目标的内容一定要记住指针的几种形态:
// 声明
int *pa; // 声明一个名为 p 的指针,需要注意的是,* 号本身仅仅表示 p 是一个指针变量
int a;
// 定义 == 赋值
p = &a; // 将 p 的内存空间中的数据定义为 a 的地址
// 声明且定义
int b;
int *pb = &b;
// 有一个函数,参数是一个指针
int *pa = &a;
int *pb = &b;
int func(int *a,int*b,int *c,int *d);
func(pa,pb,&a,&b); // 函数调用时传入的实参
// 数组和指针的关系
int a[10];
int *parr = a; // 数组名就是数组的地址,也是数组元素 0 的地址
在 C 语言中,数组和指针的界限并不明显,比如在向函数传参的时候,即使你写成
int func(int a[3]){} // 甚至这里写下了数组的长度
但是实际上这里编译器会视作你传递进去int *a的指针,对于一个指针而言,并不能有效的知道它的长度。这就是为什么多数情况下看到的函数,一旦传递入一个指针作为数组的首地址,都会跟随一个int类型的数值作为长度。
指针,务必需要注意,一定要先初始化即定义/赋值后再使用,否则,编译器无法知道你到底想要操作的是哪块内存区域:
int *p;
*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语言学习 第十次作业总结的更多相关文章
- C语言学习 第九次作业总结
本次作业练习的内容是二维数组.下面我先简单的说下二维数组的基本知识点: 二维数组其实这个中文概念颇有误导--会让人感觉这是一个两个维度的概念.所以很多的国外的C语言书籍上会称这种数组为多下标数组:即首 ...
- C语言程序设计第十次作业
一.实验内容 1.有5名学生,每名学生有语文.数学和外语3门课的考试成绩.编程统计各学生的总分和平均分以及所有学生各科的平均分.要求成绩在程序中初始化,结果以表格的形式输出. ...
- C 语言学习 第二次作业总结
本次作业内容,主要有以下几点: 新建 coding 帐号,且使用 coding 上传本次作业的代码 Printf及条件判断语句的使用 作业总结 作业总结: 同学们开始渐入佳境,能够较为流畅的写出合理的 ...
- C语言学习 第八次作业总结
本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...
- C语言学习 第七次作业总结
C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...
- 20165320 预备作业2:技能学习心得与C语言学习
一.技能学习心得 1.你有什么技能比大多数人好? 我觉得我的篮球打得比一般的人好吧,但是也仅仅掌握了大部分基本的篮球技巧,算不上精通. 2.针对这个技能的获取你有什么成功的经验? 我觉得要打好篮球需要 ...
- C语言I博客作业12—学期总结
一.我学到的内容 二.我的收获(包括我完成的所有作业的链接+收获)不能只有作业链接,没有收获 作业次数 作业链接 第一次 C语言I博客作业01 第二次 C语言I博客作业02 第三次 C语言I博客作业0 ...
- C语言I博客作业12
一.我学到的内容 二.我的收获 作业链接 收获 博客第一次作业:https://www.cnblogs.com/gm12/p/11584148.html 第一次作业收获:第一次作业是我初步接触C语言的 ...
- 技能收获与C语言学习
你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
随机推荐
- 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 4 - 验证
验证: 快要完成我们程序的界面部分了.剩下的事情就是在用户点击 "保存" 的时候管理验证问题了.验证是主要需求,今天就是最无知的应用也不会忽视它.通过正确的验证,用户可以知道应该输 ...
- C语言辗转相除法求2个数的最小公约数
辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...
- Google官方关于Android架构中MVP模式的示例续-DataBinding
基于前面的TODO示例,使用Data Binding库来显示数据并绑定UI元素的响应动作. 这个示例并未严格遵循 Model-View-ViewModel 或 Model-View-Presenter ...
- sqlServer去除字段中的中文
很多时候数据库表中某些字段是由中文和字母或数字组成,但有时我们又需要将字段中的中文去掉.想要实现这种需求的方法有很多,下面就是其中一种解决方法. 首先我们先建立测试数据 create table te ...
- Mysql性能优化二
接上一篇Mysql性能优化一 建立适当的索引 说起提高数据库性能,索引是最物美价廉的东西了.不用加内存,不用改程序,不用调sql,只要执行个正确的'create index',查询速度就可能提高百倍千 ...
- entityframework学习笔记--008-实体数据建模基础之继承关系映射TPH
Table per Hierarchy Inheritance 建模 1.让我们假设你有如图8-1中的表,Employee表包含hourly employees 和salaried employees ...
- GJM : Unity3D HIAR -【 快速入门 】 一、简介
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- safari cookie设置中文失败
最近用H5进行手机端开发,由于是window操作系统,为了方便开发和调试,直接在chrome浏览器上进行测试,然后在android机上进行手机端测试,当功能基本完工后,原来在android上运行正常的 ...
- xmlHttp.readyState的五种状态
自己简单的总结一下 深入的了解可以看其他道友的 O(∩_∩)O readyState有五种可能的值: 0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法. ...
- 传统软件和SaaS,差异究竟在哪里
这篇文章从创业起步阶段.产品形态和产品策略.市场竞争格局三个方面比较了中美 SaaS 领域的异同,在文章的最后,作者根据自己在 Box 的工作经历对在国内做 SaaS 的公司提出了四点建议. 我曾有幸 ...