我的房子在哪儿?
理解类型和变量
- 《小白学编程》系列第五讲 -
《小白学编程》系列课程过半,为满足更多同学的时间需求,课程直播时间改为了晚上八点。
昨晚八点准时开始课程的第五讲,其主题为:“我的房子在哪儿?理解类型和变量”。透过标题就可以感受到这节课的内容设计非常巧妙。同学们听课之前可能都抱着“房子?类型?变量?这三者的联系在哪儿?”这样的疑惑。我们带着这些疑惑去本讲课程中寻找答案。
妙喻
无论是我们人类,还是自然界的各类动物,都有栖身之处——我们的房子。在C语言世界里,每个变量也有自己的房子(住所),房子的大小就是类型的大小,就是对象的大小。
张老师把数据类型比作房子,把变量看作我们每个人或自然界的任何一种动物,通过这样巧妙的比喻把C语言世界中晦涩难懂的原理给大家通俗易懂地讲解透彻。这样的妙喻在完整的课程中比比皆是,观看课程回放,跟随张老师畅游C语言世界……
在讲解C语言里最难的指针概念时,张老师使用家庭地址作类比,特别引用了“我找你家去”的段子。
妙问
直播时间更加契合大家的空闲时间后,直播间的同学也多了起来。很多同学也提出了极妙的问题。
例如:
为什么是const char* name?
而不是int* name?
妙答
秉承着一贯深入浅出的授课风格,张老师对弹幕提出的问题给予了生动有趣易理解的回答:因为大小不一样。如同每个人、每个小动物住的房子大小不一,要表达的英文字符有多长,我们就要给它多大的房子。一只猪需要足够大的猪圈,一只鸡需用的空间就小很多,一只小白鼠则需要一个小箱子即可。
那表达26个英文字母需要多大的房子呢?
一个英文字符占8 bit,即一个字节;char数据类型也占一个字节,所以要把name定义为char类型,不能定义为int类型。
那为什么不能定义为int*呢?
因为那样的话,就相当于给一只小白鼠建了一个猪圈。一个int占32 bit,一个英文字符仅占8 bit,明显地,把name定义为int*会造成空间的浪费。另外,计算机语言发展到今天,这也已经变成一种约定俗成的规则。
第六讲预告
流程控制,指挥CPU行走
课程要点:条件执行,分支,循环。
直播时间:2023/07/27 周四 20:00-21:30
直播间链接:http://live.bilibili.com/24576892
微信群二维码
该二维码8月2日前有效
【盛格塾】
正心诚意,格物致知
以人文情怀审视软件,以软件技术改变人生
格友公众号
盛格塾小程序
扫描上方二维码或在微信中搜索“盛格塾”小程序
可以文章和有声读物
往期推荐
软件工程师的“硬功夫”
LINUX平台高级调试和优化(上海站)
有一个驱动叫刘姥姥
盛格塾暑期公益课程《学活LINUX》