C语言探索之旅第一部分第五课:变量的世界(二),变量声明公众号「程序员联盟」

简单地说,变量就是暂时储存在内存中的一小段信息。

为什么叫做变量呢?

变量的英语是variable,做形容词用的话是“可变的,易变的”之意,所以变量就是在程序运行期间其值可以改变的量。

你将会看到,我们写的程序,常常是充满变量的。

在C语言中(大多数语言也是如此),一个变量有两部分:

在C语言中,每一个变量必须要有一个名字。我们可不能随便取名字,还要遵守一些限制条件:

以下是一些正确的变量名:

dog,cat_and_mouse,Catch_1_mouSe,hao123COM

还要记得的是,C语言对大小写敏感,所以,hello和Hello是两个不同的变量名。

每一个程序员都有自己命名变量的习惯,我来说说本课程的变量命名习惯吧:

希望大家在之后的练习题中也能尽量保持一致的命名习惯(其实这是比较通用的命名法)。

命名变量时,尽量使之清晰易懂,如果我把一个变量petName(表示是“宠物名字”)缩写为pN,虽然短小精悍,但是阅读代码的人肯定猜不出来是什么意思。

我们要尽量做到代码是可以“自注释”的,就是说光看变量名就可以知道这个变量的用途,很多时候就可以省略注释了。

我们的电脑兄,其实是一台笨笨的机器,只知道计算,只能处理数字。

但是,在C语言当中,数字却有好多类型:

怎么有这么多乱七八糟的类型啊,可怜的电脑兄需要帮助...

所以,当你要求电脑储存一个数字时,需要给出类型。倒并不是说电脑没办法区分,而是为了电脑能更好地规划,也为了不占用多余的内存。

下表列出了主要的一些类型:

注意:上面列出的数据是C语言所保证的最小的取值范围。实际上,你往往可以在上述类型中存放更大的数值。例如,这里的int保证最小取值范围是-32768到32767,是针对2字节大小的int型来说的。一般现在的32位或64位操作系统里int是4字节,取值范围是-2147483648到2147483647。

不过,最好能稍微记得上表中的值,对你正确选择变量类型有帮助。

当然C语言还有其他的变量类型,上表只是列出了常用的。

下面给出C语言所有变量类型:

之后的课程你会看到整数用得最多,因为简单易用。

说一下signed和unsigned的区别:signed就是有符号的,就是最开始有正号或者负号(正数或负数),如7,-5,9.2,-23.8,等。unsigned是无符号数,只能是正数或零,如35,7461,61.789,等。

所以signedint就是有符号整数,unsignedint是无符号整数。依此类推。

signed和unsigned放在int,long,char,float,double等类型的前面。

上面的表格中,我们可以看到,unsigned类型不能储存负数,但是相比signed类型的优势是可以储存两倍于signed类型的最大值,例如signedchar最大值是127,unsignedchar最大值是255。

char实际上也可以看成是一种整型(这样说可能有点错误),因为每个字符的编码实际上也是用整型编的(可以查ASCII码表)。如果你将它强行转换为整型,是可以转的。很多时候,我们都会将char转成整型来计算或比较,举个例子,'A'(大写字母A)对应65。

为什么对于整数,之前的表里面列出了三种类型:char,int,long呢?一种不够吗?

做个小结:

做了这么多铺垫,终于到了我们的主题了。现在,创建一个新的控制台项目,就取名叫Variable吧。

#include#includeintmain(intargc,char*argv[]){intnumberOfDogs;return0;}如果你运行上述程序,你会惊讶的发现:这个程序貌似啥也没干。

好了,在你要指控我欺骗你之前,容我辩解一下:

如果一切顺利,电脑会回答“好的,没问题,拿一些内存空间去吧”。通常来说,是会顺利进行的。所以你的变量一般来说(除非内存不够了,但是很少会这样,因为你只是要求分配一个int的空间,很少的)肯定创建了。

然后呢?

没有比这更简单的了。如果你要给上面的变量numberOfDogs赋值,只要这样写

numberOfDogs=7;不用做什么其他的了。你写上变量名,然后写一个等号,接着写你要给它的值。

上面,我们刚把7赋给了numberOfDogs(表示“狗的数目”)。

因此,我们的完整程序现在是这样的:

#include#includeintmain(intargc,char*argv[]){intnumberOfDogs;numberOfDogs=7;//有七条狗return0;}这次你如果运行一下,也没有发生什么,屏幕上什么也没显示。但其实一切都悄然在内存中进行,只不过你看不到罢了。

在你电脑深处的某个地方,一小块内存上刚储存了7这个值。是不是很神奇呢?

我们可以试着改变变量的值,比如像这样:

intnumberOfDogs;numberOfDogs=7;numberOfDogs=6;numberOfDogs=5;上述例子中,numberOfDogs这个int类型的变量首先会被赋值为7,之后改为6,再改为5。因为你的电脑运算速度太快,所以这一系列操作都是瞬间就完成了。还没来得及眨眼,你的变量numberOfDogs的值就从7,变为6,再变为5。

实际上,当电脑读到这一行:

intnumberOfDogs;首先,它在内存中取了一小块出来给numberOfDogs用。但是这时numberOfDogs的值是多少呢?有没有一个默认值(比如0)呢?

答案是:没有。

没有默认值。事实上,内存的这小块区域是给了numberOfDogs,但是上面的值并没有改变,我们并没有清空在这小块内存上原来有的值。所以,你的变量numberOfDogs的初始值就是在那一小块内存上的值,这个值可以是任意的。

如果这块内存的值先前没有改变过,那可能是0。

你并不能确定,有可能初始值是45或182,因为可能之前有一个程序已经改变了那块地址上的值。

这样做的好处是:你可以确定这个变量的值是什么,不会是任意的一个数。

这种特殊的变量被称为constant(表示“恒定的,不变的”)变量,由const关键字修饰。

有的书本说const修饰的是常量,这种说法是不准确的。const修饰的是变量,只不过是只读的变量。因为加上const之后,值就不能再改变了。

例如:

constintNUMBER_OF_DOGS=7;并不是一定要大写const变量的名字,只是一般用大写,这已经成为了一个约定俗成的习惯。

除了值不能改变,const变量和一般变量一样。只不过假如你要在之后的程序中改变const变量的值,编译器会提示一个错误,例如:

[Warning]assignmentofread-onlyvariable'NUMBER_OF_DOGS'(表示“[警告]试图改变只读变量NUMBER_OF_DOGS的值”)

THE END
1.宠物公众号运营方法和技巧内容中心宠物公众号作为社交媒体平台上的一个重要领域,已经吸引了越来越多的宠物爱好者。如何在这个竞争激烈的领域中脱颖而出,成为宠物公众号运营者的共同关注点。本文将为您介绍一些宠物公众号运营的方法和技巧,帮助您打造一个成功的宠物公众号。 1. 确定目标受众群体 ...http://ad.365editor.com/information/detail_3345
2.如何一步步制作一个成功的微信公众号指南怎么制作公众号 (How to Create a WeChat Official Account) 在现代社会,微信公众号已经成为了个人和企业进行信息传播、品牌推广和用户互动的重要工具。无论是个人创作者、商家还是机构,拥有一个公众号都能帮助你更好地与受众沟通,分享信息。本文将详细介绍如何制作一个公众号,包括注册、设置、内容创作和运营等方面的...http://js315.com.cn/huandeng/213764.html
3.宠物公众号这样排版,阅读量提高了模板主题宠物公众号这样排版,阅读量提高了 越来越多的家庭会养一只或者多只宠物,来陪伴自己,相应的宠物医院宠物商店都会成为一个热门的行业之一,部分宠物商店或者医院会有自己运营的公众号,用来宣传营销,所以公众号的编辑排版就是一个非常重要的工作,那么宠物类的公众号新手小白要怎么排版,才能让老板满意用户喜欢呢?其实新手...https://pets.sohu.com/a/716831886_121459139
4.胖哥汽车频道公众号车友交流懂车帝提供胖哥汽车频道 公众号的车友交流详细内容,懂车帝是一个汽车资讯平台,懂车更懂你。我们提供最新汽车报价,汽车图片,汽车价格大全,行情、评测、导购等内容,看车选车买车就上懂车帝。https://www.dongchedi.com/tag/ugc/10450528
5.什么是食品界的"裸眼3D"?安姆科用印刷术,攻破7秒购买决策...这些包装印刷技术可应用于软包装、铝罐等包装类型,在终端市场中覆盖的品类也十分广泛,包括乳制品、咖啡、高品质茶叶、宠物食品、保健品、OTC药品等品类。 (二)安姆科感官印刷技术优势 感官印刷技术定位于高品质终端产品,通过各类先进设备和技术工艺,可在消费者的感官体验上,提高产品的外观和档次。在安姆科感官印刷技术下...https://www.foodtalks.cn/news/47001
6.手机公众号排版软件APP推荐手机公众号排版软件下载那么公众号模板编辑器app有哪些?越来越多的人都有这样的疑问,在登记公众号文章时,只有合理的使用模板才能让公众号更加出色,也能吸引到更多的用户,接下来小编推荐集团。1、《PPT模板》有... 11-27 公众号图文编辑app哪个好用 实用的公众号图文编辑软件大全 11-08 2022做公众号的软件用哪些好 公众号运营辅助软件...https://www.wandoujia.com/bangdan/405989/
1.丢掉这些东西,分分钟打造一个清爽的家关注微信公众号:jiaxhx,学习更多小户型装修知识技巧 上个周末 我帮一个女性朋友搬家 洗衣机那么大的集装箱 她整理了整整20个 我笑她搬来不到三年 存下来的物件,硬是比来过的人都多 她说天大地大 人这一辈子,放不下的东西可太多了 然后我们在新家里打开了她的这些“放不下” ...http://jiazhuangxiu.m.jia.com/zixun/article/748498.html
2.如何玩转视频号获得高赞?这份20000字干货指南解答一切2020 年 1 月 9 日,腾讯集团高级执行副总裁、微信事业群总裁张小龙在微信公开课上带来了一段演讲视频,其中特别提到了「短内容」, 表示「相对公众号而言,我们缺少了一个人人可以创作的载体。因为不能要求每个人都能天天写文章。就像之前在公开课所说的一样,这一直是微信要发力的方向」。 https://www.36kr.com/p/674805899899913/
3.有点小神经质,博美犬种介绍微信公众号:北鼻宠物圈 本篇文章使用有道云笔记编辑 点击体验 联想美的微信狐狸外向 END 阅读27 声明:本文内容由脉脉用户自发贡献,部分内容可能整编自互联网,版权归原作者所有,脉脉不拥有其著作权,亦不承担相应法律责任。如果您发现有涉嫌抄袭的内容,请发邮件至maimai@taou.com,一经查实,将立刻删除涉嫌侵权内容。 https://maimai.cn/article/detail?fid=881471659&efid=_4f8j6dGxQM_pRZL2xe8sw
4.《微信公众号平台运营规范》对于公众号主要禁止的的行为有哪些...发现因为构图不合适,使图片中的饰品显得太小,不够醒目。为了突出项链的精致轮廓,可对图片进行裁剪。在裁剪之前,先按下快捷键( ),复制图层,创建“图层1”图层。单击工具箱中的“裁剪工具”按钮,选中“裁剪工具”。https://www.shuashuati.com/ti/a3f140a9da534195bb08f1429b2c1b21.html
5.宠物店如何做好微信公众号宠物店如何做好微信公众号 自媒体的快速发展,如今也有很多的宠物店也选择在自媒体上面进行营销推广,尤其是微信公众号,但是也有很多人对于宠物店做微信公众号不理解,觉得没有必要来做,可能是大家根本不了解关于微信公众号到底能够为企业带来什么吧,下面就为大家讲解一下。https://www.jutui360.com/view-29239.html
6.宿州职业技术学院2023年分类考试招生章程已参加安徽省2023年普通高校招生考试报名并取得考生号的考生,于2023年3月28日10:00至4月2日16:00,登录gkbm.ahzsks.cn填报院校及专业志愿。报名流程详见省教育招生考试院网站(www.ahzsks.cn)公告栏或安徽省教育招生考试院微信公众号。报考我校的考生可填报2个专业志愿和1个专业服从志愿。 http://anhui.danzhaowang.com/bkzx/zsjz/304776.html
7.霉运清除这里也许还有你不知道的春节扫尘清洁习俗最后,“细心”的小编已经帮大家查好了,广州春节前后大致的天气情况。 广东其他地方温度相差也不太大,今年的春节可以说不冷不热十分舒适,是不是非常适合来一场健气的扫尘呢!赶快跟着盛邦一起行动起来吧。 你的家乡都是怎么扫尘和过春节的呢?也可以在评论区多多和我们交流~ *更多详情可关注盛邦化工公众号...http://www.gzshengbang.com/article/53/
8.广东生态工程职业学院2022年新生入学须知以下是为大家整理出来的官方微信公众号 请查收! 需要的小伙伴可以进行收藏哟 1 广东生态工程职业学院 这里是广东生态工程职业学院官方公众号,致力于宣传校园,为师生提供相关服务,为您带来最新的广生态咨询,感谢关注,欢迎留言,我们会及时回复你的咨询。 学校各部门公众号 ...https://www.027art.com/guangdongzhuanke/HTML/17562632.html
9.2022年T电梯修理免费试题及T电梯修理试题及解析题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:T电梯修理免费试题是安全生产模拟考试一点通生成的,T电梯修理证模拟考试题库是根据T电梯修理最新版教材汇编出T电梯修理仿真模拟考试。2022年T电梯修理免费试题及T电梯修理试题及解析 1、【多选题】自动扶梯的梯级牵引链,张紧和断裂保护装置,一般由...https://blog.csdn.net/w1874724189/article/details/123151840