Monthly Archives: December 2014

【C语言笔试复习】指针数组和数组指针

这周开始做C语言笔试卷,什么嘛!考的都是概念,各种细节,虽然貌似书上都能找到,但我还真不清楚…顿时又有一种我C语言学的好渣的感觉 T_T

好了,说下在【上机实验蓝皮书背后,综合测试题二】中难到的2道题,这两道题使得你对【指针数组】和【数组指针】的区别更加清晰。

【例题1】

有以下程序:

#include 
 
int main()
{
    char *s[] = {"one", "two", "three"}, *p;
    p = s[1];
    printf("%c, %s\n",*(p+1), s[0]);
    return 0;
}

执行后的结果是_______。

A. n, two B. w, one C. t, one  D. o, two

第一次我选了 C,因为我以为 (p+1) 是指向 “three“ 的。这是对指针 p 类型的理解错误。

正确答案是 B,因为:

 #include 
 
 int main()
 {
     char *s[] = {"one", "two", "three"}; // s是一个指针数组,元素是3
                                          // 个指向字符串常量的指针
     char *p = s[1];  // p是一个指向字符串的指针变量
     printf("%c, %s\n",*(p+1), s[0]);
     // (p+1)是p的地址加一个字符内存的大小,从指向t变成指向w
     return 0;
}

所以,平时我们说的指向字符串的指针,其实都是指向一个字符,所以对它进行位移运算时,加减都是1。
另外,如果你把第8行

   printf("%c, %s\n",*(p+1), s[0]);

改成

   printf("%c, %s\n",*p, s[0]);

输出就会是:wo,one

因为平时我们输出字符串的时候,实际上都是把字符串的首地址传给 printf( ) 函数,它通过末尾的 ‘\n’,来判断是否结束。

【例题2】

#include 

int main()
{
    int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
    int (*p)[4] = a;
    printf("%d\n", *(*(p+1)+3));
    return 0;
}

以上代码执行的结果是_______。

答案是 8

这道题初看我完全不理解…怎么*了还能*,(*p)[4]又是什么鬼…我做这份卷子前把【指针数组】和【数组指针】搞乱了=

是这样的:

1.(*p)[4]:声明p是一个指向(4个int元素的数组)的指针,因此 p+1 从指向 a[0],变成指向 a[1]

2.*(*(p+1)+3):为什么会有两个星?

*(p+1) => a[1][0](也就是5),第一星从a[1]变成a[1][0],这个过程虽然地址没有变,但指针的类型变了!原来指针+1是加4个 int,现在指针+1只加一个 int 了!!

*(p+1)+3 => a[1][3](也就是8),再取一个*就是从地址里读出8

还可以修改一下原来的代码弄清楚:

 #include 
 
 int main()
 {
     int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
     int (*p)[4] = a;   
     printf("p: %p\n",p);
     printf("p+1: %p\n",p+1);
     printf("*(p+1): %p\n",*(p+1));
     printf("*(p+1)+3: %p\n",*(p+1)+3);
     printf("%d\n",*(*(p+1)+3));
     return 0;
}

输出的结果是:

p: 0x7fff9f4ba180
p+1: 0x7fff9f4ba190
*(p+1): 0x7fff9f4ba190
*(p+1)+3: 0x7fff9f4ba19c
8

好啦~

这篇笔记最早发在博客园里,直接粘贴过来再排版的,所以格式不太美观,可以看→原文

10.7-12.19 生活总结

昨天晚上看了一会《鸟哥的私房菜 Linux 基础学习篇》之后,突然什么都不想做。对,不管是 MOOC 进中学的合作交流、做作业、学习 Linux 技术、还是外出看片49 Up,都没有吸引力。于是就想起来拖了很久的生活总结。是啊,本来半期考后就打算写的,还有沔哥的邮件也拖着没回。

半期考那会,准确说是半期考那一周,特别有感悟。想着半期考完一定要写生活总结,写对之后的规划。忘记是什么时候了,我终于结束了大一上学期的迷茫阶段。大概是我想清楚了以后要做什么,定下来要转专业以后。整个人都鲜活了!

关于转专业

最主要的是目前自己把更多的时间花在学习计算机技术上,而且对物理特别不上心,没兴趣,不想看书,讨厌刷题… 大概是发现自己的行为很明显的表现出想往计算机方面发展。就像当时选择科大、选择放弃自招准备的时候,抉择虽然纠结,但自己的行为已经充分表明了更喜欢学习 MOOC 的生活,而实在是不愿意再去刷题好好准备高考。

以上一段,是我最后做决定的直接原因。而其实,我开学不久后就开始思考转专业,中间也曾经摇摆不定过一段时间。而转专业的其他原因大概是:

  1. 怀疑自己对物理的兴趣
    * 高中学物理竞赛提前剧透,导致现在对力学课感到很无聊
    * 从去年 11 月到现在,我再没有认真学习物理
  2. 周围都是对计算机感兴趣的人
    * 对,社交圈对人的影响很大,这一年多我的社交圈从物理竞赛换到 MOOC和字幕组,然后现在是 LUG。加入 LUG 对我转专业想法形成影响最大吧…
  3. 我觉得物理离生活很远,学计算机更灵活。我觉得计算机专业技能能帮助我更好的表达自己,实现自己的想法。

算了,其实什么理由都不重要,特别是当你已经决定转专业以后。比如我现在。当我上面什么都没说。

恋爱

曾经有段时间,就是我特别迷茫的时候,我几乎都想说“感觉来科大以后,谈恋爱是我唯一一件做的满意的事情了”。233,这件事的确投入了很多的时间,目前发展的很好,就不秀恩爱了。总之,这是一件非常美好的事情,每天都特别开心……

状态的改变:张静宁还是那个张静宁

我觉得我现在过着好比高三下学期的生活,但还是更喜欢现在的生活。大学时间很多很自由,我现在就基本处于很忙很自由,但事情多的做不完。经过回顾,我发现这两个多月我真的没有好好学习(2333)。做了挺多事情,最主要的应该还是从当时的迷茫,不知道做什么的状态中走出来了。科大的学习压力也许真的很大,大家也许真的非常看重 GPA,不过我现在生活的挺愉快的…没有太多的烦恼。

一开始来到新环境,个人评价体系被冲击,但现在又很好的恢复自信了,做着自己认为应该做的事情。这应该和半期考有很大的关系,半期考前半个月我开始“好好学习”,特别担心挂科什么的,结果考完试,微积分和力学的成绩都很满意(我对自己要求不高),于是就开始愉快的玩耍了…

了解了晓文和沔哥的一些情况后,反差挺大的,我觉得自己依旧充满干劲,虽然有时候我会翘课、会赖床、会偷懒,但积极向上的心态没有变。我现在依旧觉得 GPA 不是最关键的,只要自己觉得学的不错,弄懂了应该学的东西,不要让 GPA 影响转院就行。这就是我对科大学习的要求。我更在意自己的项目,总之不管是学校的学习要求、还是自己的项目,只要我觉得真的很好、有意义、感兴趣,就会很认真的投入花时间去做。

我依旧相信,一个人的竞争力取决于他的实力。不要过于担心未来的事情,做好手头上的事情,尽量做自己喜欢的事情。

我觉得又写残了,MOOC进中学达到果壳要求的时候我特别开心,这个项目貌似现在进展的也不错。总之,我在科大生活的很好啦 ~ 如果有什么不足,希望自己睡觉能早一些,能增加规律的运动,能多花一些时间学习英语。

以下是我这两个多月的生活记录整理,你可以通过这个稍微了解我的生活:

>>>>>>>>>> 项目 <<<<<<<<<

MOOC进中学进展

  • 有了自己的主页:http://moocwiki.org/
  • 和珠溪中学老师合作
  • 和杭州外国语学校同学合作
  • 万有青年养成计划达到果壳要求!!
  • 和北京昌平二中老师合作
  • 计划仍在进行【最新进展贴】

字幕组

  • 给 Crash Course 视频团队发字幕,我们翻译的字幕上 YouTube 啦
  • 我们翻译的 Crash Course Chemistry 字幕在网易公开课发布
  • 字幕组荒废(尽管有很多新人加入,但组长、校对不干活了)

>>>>>>>>>> 学习 <<<<<<<<<

科大学习

  • 单变量微积分:听课、看书、做作业
  • C 语言:不听课(听不懂)、自己写代码(上机作业 GitHub 链接
  • 力学:只做作业(包括力学以及其余的课,都不上心)
  • 偶尔翘课
  • 半期考完还活着
  • 转院打算

MOOC

  • 微观经济学 · 第一周放弃
  • CS50 · 两周后放弃
  • 目前没有学 MOOC 这我也觉得很不好…

读书(list)

写作

>>>>>>>>>> 活动 <<<<<<<<<

LUG活动(链接)

  • 每周小聚:Git 使用心得
  • 每周小聚:关于文件的种种魔法
  • 每周小聚:云上的服务,你我共享
  • 即兴讲座:AngularJS
  • 每周小聚:你所不知道的 DNS
  • 参观网络中心
  • Linux User Party

其他讲座、交谈

  • 李卫平讲座:本科生学习规划
  • 姬十三宣讲:95后 再造学习
  • 交谈:和图书馆老师聊 MOOC
  • 打酱油:boj 的 C 语言讲座
  • 阳光助学金座谈会:正能量
  • 黑客大赛讲座:铿神网络安全 www
  • 校团委培训:新闻·采访·消息写作
  • 百度俱乐部:boj 讲科大博客
  • 科创大汇堂:超算科大曙光队访谈

其他活动

  • 国旗护卫队:女生护旗
  • boj 生日 、静宁生日、还有各种饭局省略
  • Open House:到外教家聊天

女神杯赛程(11.3 – 12.6)

  • 物院:管院 = 12:11       ==>  败
  • 物院:地空 = 9:6           ==>  胜
  • 物院:少数联 = 14:11   ==>  胜(小组赛晋级)
  • 物院:管院 = 12:10       ==>  胜(东区冠军)
  • 物院:软件 = 26:14       ==>  败(女神杯亚军)

>>>>>>>>>> 恋爱 <<<<<<<<<

此处省略 1w 字

>>>>>>>>>> 生活 <<<<<<<<<

理财

  • 每月理财分析
  • 资金自流转
  • 助学金和万有青年资助

杂碎

  • 购物
  • 家务事…杂活

【访谈】杭外MOOC学习小组:我们有15门课!-MOOC进中学

【MOOC进中学:moocwiki.org】

周末,我采访了杭州外国语学校MOOC高中学习小组的负责人之一:杜邦(Dupont)同学,来了解他们学校的MOOC学习小组的情况。以下采访稿来自QQ聊天记录整理。

(JING-TIME由于名字太长不好看,改成Jenny了o_O)

  • 社团的基本情况怎么样

Jenny:先简要介绍一下你们在做什么吧?

Dupont:我们现在做的是”MOOC高中生学习小组”,未来准备发展成杭州的高中生MOOC线下学习平台。

Jenny:那有哪些常规活动呢?

Dupont:常规活动有:每周一次的课程讨论活动(固定时间小组成员到场讨论所学的内容);结课的分享活动(以论文演讲的模式分享所学的知识、解决或者分析问题)。

Jenny:你们规模多大?参加的人多吗?一共有几个学习小组?

Dupont:一共有15个小组(15门课),校内小组讨论规模在5-9人之间,就是我们学习小组的人数。总人数大概100人左右吧,比较松散。要精简才能保证效率。

Jenny:你们社团现在已经是学校的注册社团了吗?

Dupont:嗯。

Jenny:这15个小组都是你们学校(杭州外国语学校)的吗?

Dupont:全是我们学校的。

  • 学习小组是如何学习的

Jenny:你们涉及哪些课程呢? 是如何选课的?

Dupont:涉及大脑与空间、金融导论、城市设计、药物化学,还有编程(这些是参与度比较高的课程,学习效果也比较好)。开学的时候我们会从MOOC学院上挑选出难度较初级的课程,这次选了30门,给所有小组成员填报选课志愿 2个, 根据人数调配成15 门课。

Jenny:那社团在学习小组中扮演什么样的角色?

Dupont:社团负责人会分配到各自负责的学习小组,包括确保每周的讨论、考勤、提醒quiz的deadline的任务。对于比较全面、知识断层比较大的课程,我们计划和大学的MOOC社团合作,邀请教授过来做一些知识补充的讲座,并解答一下问题。常规问题我们还都是建议放到讨论区里面。大学的资源正在积累ing,这个学期还没有组织。

Jenny:你说的讨论区是指MOOC学院讨论区是吗?

Dupont:不是,是课程的讨论区。Coursera讨论区比较多,因为助教解答的比较及时。MOOC学院的普及度不高,我们基本上跳过了这里,直达课程平台。线下小组不太需要MOOC学院这种网络社区,效率太低了。

吐槽:也就是我们更喜欢用MOOC学院的课程系统挑选课程,而不怎么用MOOC学院的讨论区

  • 学习小组如何办活动

Jenny:目前组织几次活动了?每次效果怎么样?

Dupont:校内活动从10月到现在(去除期中考试和运动会两周),每周都有一次。效果看小组,那五个小组效果都比较好。初期创办的时候没有建立退出机制,小组里留了一些不是很认真的人,再下次会被解决。

Jenny:活动主要有谁来组织呢?

Dupont:社团负责人(就是我和我的小伙伴),一共5个人

Jenny:那你们活动有记录吗?比如活动资料:照片、PPT、讲稿、宣传素材等。

Dupont:活动记录有的。第一次校内宣讲在我电脑里,第二次面向其他高中的分享和介绍应该在我们学校电视台和摄影社那里,要拿去评什么杭州市优秀社团,虽然不知道能不能评上。

Jenny:以上照片是哪次活动的?

Dupont:第二次,上周日。是面向杭州高中的分享,结课分享。吸引了很多其他高中感兴趣的同学,包括学军中学、杭州高级中学 等。

Jenny:你们的活动场所向哪里申请呢?是否有获得外部(如学校、老师、学生会)的支持?有没有活动经费什么的?

Dupont:有啊。光大银行提供了场地支持(光大银行的会议室),这次向社会上的教育机构申请了大概3000的赞助。还有uber(美国一款打车软件)一个人100的车费赞助。还有包括派车、代金券。

Jenny:也就是没有学校的直接支持咯?

Dupont:我们这次没有靠学校,因为我们学校管的比较少。

Jenny:那么,你们大概一周花多少时间在学习MOOC上?是否和学校学习有冲突,如时间安排不过来什么的。

Dupont:看课程,一般2h,金融导论9h+,大部分课程都会在2h左右。我们负责人现在要教同学时间安排。根据我们的情况有一些时间安排经验。

  • 社团的困难与MOOC中学推广

Jenny:能说说你们社团遇到的困难吗?

Dupont:困难…看那些报废的小组呀,组员不认真+拖延

Jenny:你认为你们的模式可以在其他城市、其他学校推广吗?

Dupont:当然不能。因为在其他学校还没有尝试过,我们学校特殊性还是蛮强的,自由包容的校风。所以我们准备在杭州其他中学继续发展,探讨对象更全面的模式。那时候就可以推广了。

Jenny:中学生想组织MOOC学习社团挺困难的,一开始学校、老师就可能不支持,也有家长不支持。而同学们也因为时间冲突而无法坚持。

Dupont:学校不支持没事,但不能反对,要不然阻力就很大。可以用新课改和学校谈。

Jenny:你们和学校谈过吗?

Dupont:我外校的小伙伴和他们学校谈过,学军中学,还有镇海中学,都是升学没有什么压力的学校。

Jenny:你们高考的压力大吗?还是都是打算出国的?学校对升学率压力不大,那学生呢?

Dupont:学生怎么说呢?效率很高。不管学习效率,还是对时间的利用率都很高。面临高考也没有那种大战来的感觉,大部分人还是学有余力,越过高考的环节就是关注大学的发展了。大神已经不在乎什么大学内容,稍微弱一些的就会组织一些活动,学习MOOC了。

吐槽:膜拜!!!

Jenny:你对我们的项目(MOOC进中学)有什么想法吗?如,你认为我们应该做什么?

Dupont:嗯,有啊。加快进度,群里所有人都要活跃起来,从当地着手,结合自己学校的实际(因为我们这个计划没有什么很大的背景,不能作为一个团体和学校接触),主动权是要给在校的同学。

Jenny:对,我后来意识到,我们无法深入和一个学校合作,毕竟每个学校的情况都不同,具体环境很重要。

Dupont:项目很有发展前景,和新课改内容比较贴切。我们要做的是探索模式,不能因为学校一个社团审批搁置,有些大学社团筹备了一年多,效率极其低下。没有官方支持可以先弄,假如合适就自然获得学校支持。

Jenny:那么我总结一下“我们的主要任务是调动大家的积极性,并且做一些简单的帮助,并促进大家信息交换、经验交流”你赞同吗?

Dupont:还有…对于参与的同学起到督促作用,我们覆盖面太广了。

Jenny:我差不多问完啦!感谢你接受我的采访咯~(哈哈

后来,Dupont 同学又给我发来了更多他们的活动照片

MOOC进中学(moocwiki.org):是第五期入选的万有青年养成计划项目之一,旨在推进MOOC在中学的传播。我们推荐适合中学生的MOOC资源,翻译优秀科普视频,也与中学尝试翻转课堂的老师、组织MOOC学习小组的学生合作。促进大家信息交流、经验分享,一起探索MOOC浪潮下中学教育的改进。

 

这是我第一篇采访稿,访谈经过:预约+1.5小时QQ采访+1小时预整理和构思+2.5小时整理写稿和调整格式+1小时的推广和同步更新。共计6小时完成吧。