同学们终于学到最有意思的东西:指针了。有人说指针是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语言学习 第十次作业总结的更多相关文章

  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. 深入理解CSS动画animation

    × 目录 [1]定义 [2]关键帧 [3]动画属性 [4]多值 [5]API 前面的话 transition过渡是通过初始和结束两个状态之间的平滑过渡实现简单动画的:而animation则是通过关键帧 ...

  2. FPGA旋转编码器的实现

    module pmodenc( clk, rst_n, A, B, BTN,// A_Debounce,// B_Debounce,// BTN_Debounce,// Rotary_right,// ...

  3. 数据结构:基于list实现二元表达式(python版)

    #!/usr/bin/env python # -*- coding:utf-8 -*- def make_sum(a, b): return ['+', a, b] def make_prod(a, ...

  4. python之最强王者(7)——元组(tuple)

    1.序列(sequence): 说明:在前面的字符串列表中其实我们已经用到了序列,之所以放到这篇来讲主要是为了承上启下,方便理解和记忆. python的数据访问模型:直接存取 ,序列 ,映射 对非容器 ...

  5. HttpClient相关

    HTTPClient的主页是http://jakarta.apache.org/commons/httpclient/,你可以在这里得到关于HttpClient更加详细的信息 HttpClient入门 ...

  6. iOS - 捕获应用程序崩溃日志

    作为一名iOS移动应用开发者,为了确保你的应用程序正确无误,在将应用程序提交到应用商店之前,你必定会进行大量的测试工作:而且在你测试的过程中应用程序运行的很好,但是在应用商店上线之后,还是有用户抱怨应 ...

  7. Android 5.X新特性之RecyclerView基本解析及无限复用

    说到RecyclerView,相信大家都不陌生,它是我们经典级ListView的升级版,升级后的RecyclerView展现了极大的灵活性.同时内部直接封装了ViewHolder,不用我们自己定义Vi ...

  8. Angularjs-项目搭建

    开发工具采用WebStorm,没破解,使用了过期策略:安装之后不着急打开程序,先设置系统日期为未来的某个日期,比如2020年.然后再打开程序,试用.然后再改回来系统日期.虽然每次打开WebStorm都 ...

  9. java编码原理,java编码和解码问题

    java的编码方式原理 java的JVM的缺省编码方式由系统的“本地语言环境”设置确定,和操作系统的类型无关 . 在JAVA源文件-->JAVAC-->Class-->Java--& ...

  10. 2、项目标准的制定 - PMO项目管理办公室

    PMO项目管理办公室应该是针对公司级别的项目内容制定项目标准.这个由公司的项目经理们进行集中讨论,然后将项目标准进行文档化,标准化,从而为公司的项目进行指导性的功能,为公司的项目进行服务.下面对项目标 ...