初识数据类型和函数变量,今天和昨天共同学习了数据类型和函数变量所以攒在一期来记录。

首先数据类型顾名思义就是数据的类型,生活中有许许多多的数据类型,比如常量,像是年龄,还有一些大数,像是用来记录天文数字的数字,还有体重,具体精确到多少斤?小数点后面保留一位,所以我们学习C语言应该如何来定义这些数字呢?下面是一些C语言中常用的数据类型和数据类型的使用方法。

 

其中注意的是char和别的类型不一样,它代表字符类型,所以要单独区分开来,使用方法是先用单引号将我们要输入的字符引上,放在一个空间里,这里选用的是ch,至于为什么是ch是因为习惯问题,他可以是任何名字(亲测,我用的fh试了一下),int代表整型,其他的short写法正规是short int,但是short语法没问题也可以这么写。

在这里我们还需要注意的一个点是我们在用printf函数输出我们的int代表的整型变量时,我们的语法规定是"%d\n",这里的%d是指答应一个整数,特指int定义的数,类似的,我们还有 

 

类似的,我们还有float,单精度浮点型和double,双精度浮点型。分别在使用printf函数的时候用%f和%lf来表示float和double。

这里特别介绍一个sizeof()函数的用法,sizeof是一个计算类型或所占空间的大小,可用于计算出我们所想知道的数据类型作战存储空间的大小。

比如我们如图中所示,我们已经分别用sizeof函数计算出了我们刚刚所学不同数据类型所占的空间,其单位为bit,比特。

我们可以看到char所占空间的大小为1比特,以此类推。

那么在介绍完了我们的数据类型之后,我们来说变量,什么是变量呢,比如我们生活中的工资是个变量,我们的薪资会变,所以我们也要用C语言的方法来系统规定。这里介绍全局变量和局部变量,怎么区分全局变量和局部变量呢,实际上办法很容易区分,方法就是在大括号{}里被定义的变量都是局部变量,在大括号{}外面定义的变量是全局变量。

比如说像这样,在大括号{}外面的是全局变量,在大括号{}里面的是局部变量。那么你知道为什么这里我同时定义a的值,答案却出现10,而不是100呢?

原因就是当我们局部变量和全局变量名字冲突的情况下,局部优先,在这里很明显我们定义a的数值的时候,全局变量和局部变量冲突了,所以局部变量优先,所以就输出了局部变量10。

所以在我们写程序的时候,尽量不要将全局变量和局部变量定义为同一个字母。

最后在这里我们在介绍一个新的函数,输出入函数scanf,此函数可以允许我们将我们想要输入的东西输入到我们定义的字母中,其语法格式如这样,在%d后面加上&符号是指我们将要对什么对象输入。

比如我们设计一个代码求两个整数的和

 这样写就可以了,在开始都给变量赋予初始值0,再后来用scanf函数来让我们将我们想要的数值输入到里面去,但是

系统会报错,原因是因为scanf函数不够安全,推荐我们不要使用scanf函数,在这里我们使用vs的朋友可以改成scanf-s来变成安全的函数,但是scanf-s是vs软件自己编出来的小程序,对于其他编译器软件不适用,解决方法就是,如图所示将输出中的符号放在所有函数的第一行,再运行程序即可,这就是标准的C语言中解决scanf函数不安全的方法。 

我们把这个它提示我们的安全的方法写在程序的第一行,这样的话就可以安全使用了

但是还有更方便的方法,我们在我们的计算机中找到newc++file的文件,记住他的路径

之后我们打开我们的记事本,用管理员身份运行

我们在记事本中的文件中点击打开

 后来我们吧我们之前记录的路径复制粘贴上去

我们在记事本中输入这个

 完成之后我们新建一个源文件的项目

 我们看到在我们刚刚穿件好文件的时候文件的开头就已经有这行代码了,这样的话以后会方便很多我,我们就可以放心大胆的使用scanf函数了!

本期学习内容到这里就结束了,但是我本着钻问题的态度,我想知道为什么scanf函数是不安全的,是因为scanf函数本身有bug,而别人可以利用scanf这个函数的bug来修改程序吗?本着这个问题我上网查阅资料,发现事实果然如此,和我想的一样。

今天的学习分享到这里,我们下期再见!

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值