第二讲:C语言数据类型和变量

本文介绍了C语言中的基本概念,包括不同类型(如char,int,float,double)的使用,变量的声明与初始化,算术操作符(+,-,*,/,%,signed,unsigned),赋值操作符,强制类型转换,以及printf和scanf函数的用法和格式控制。
摘要由CSDN通过智能技术生成

1.类型的介绍

2.signed和unsigned

3.算数操作符:+ - * / %

4.赋值操作符:=和复合赋值

5.单目操作符:++ -- + - 

6.强制类型转换操作符

7.printf的进一步介绍

8.scanf函数

1.类型的介绍

1.1什么是类型?

类型是用来形容变量的,变量就像一个容器,里面可以装数据,数据分为各种各样的类型,有字符型(char,是用来描述字符的),整型(int,是用来描述整数的),浮点型(float,double,是用来描述小数的),要装什么样的数据,就要什么样的变量,在变量前加上类型进行修饰,就可以得到该类型的变量。


1.2创建变量

第一步,给变量取名,这个名字随意,但必须是字母,数字和下划线(_)的组合,且第一个位置不可以是数字

第二步,说明变量的类型,变量就创建完成了,如图

1.3变量的初始化

在创建变量的时候赋值叫变量的初始化

注意看第8行的f,在小数结尾加上f表示该小数是float类型的,否则,编译器会默认该小数是double类型的。

1.4变量的赋值

不在刚创建变量的时候进行赋值,叫变量的赋值

1.5sizeof操作符

1.5.1sizeof的作用

sizeof是用来计算类型的大小或计算与sizeof最近的操作数的大小,大小的单位是字节,sizeof计算完后,会返回该类型或操作数的大小,sizeof的返回值类型是size_t,这种数据用%zd打印,size_t也是一种类型,该类型是用来描述无符号的整数的(就是非负整数)

1.5.3sizeof计算类型的大小

将类型写在sizeof右边,且必须在括号内

所以,int类型的数据占4个字节,char类型的数据占1个字节,flaot类型的数据占4个字节,double类型的数据占8个字节,size_t类型的数据占4个字节。

1.5.2sizeof计算操作数的大小

将操作数写在sizeof右边,sizeof计算最近的操作数的大小

操作数可以是常量,也可以是变量

常量1.1f被默认为float型,占4个字节

常量1.1被默认为double型,占8个字节

常量1被默认为int型,占4个字节

字符型常量会被默认为int型,占4个字节

第7行sizeof先与3结合,返回4,4+5=9,所以是9

第8行,3+5这个整体的类型是int型

所以,计算常量的大小没什么意义。

1.5.3不要写bug

sizeof是计算操作数大小的,不要在sizeof后面的括号里进行任何操作。

不要写出这种代码!!!

也不要写出这种代码,没有意义!!!

1.5.4sizeof的正确用法

一般只会用sizeof计算单个变量的大小,此时,括号可以加,也可以省略

1.5.5应用

求出double类型的变量的大小是int类型的多少倍?

这两种写法都是可以的

2.signed和unsigned

signed和unsigned关键字是用来修饰字符型和整型类型的,常见于修饰整型类型

在定义变量时,int前默认有一个signed,表示该变量所表示的值是有符号的,若在int前加上unsigned,使变量所表示的数扩大一倍(本来符号位是用来表示正负的,现在可以用于表示数值),但是,符号位变成了数值位,使变量不能装负数

unsigned int类型叫无符号整型,一般情况下,与size_t类型没什么区别。

unsigned int等价于unsigned,int是可以省略的

3.算数操作符:+ - * / %

它们都是双目操作符,需要两个操作数

注意:%运算符的两个操作数必须是整数,运算结果由第一个操作数的正负决定

4.赋值操作符:=和复合赋值

前面已经讲过变量赋值,现在讲讲连续赋值

看第六行,这是一种连续赋值,连续赋值是从右向左赋值

第一步:将常量5赋给b

第二步:常量b里装的是5,现在将b赋给a,实际上是将5赋给a

复合赋值

5.单目操作符:++ -- + - 

5.1 +和-

在一个变量或常量前加+,没有影响

在一个变量或常量前加-,该变他的正负

5.2++和--

i++后,i的值加1,i++这个整体表示i+1以前的值

++i后,i的值加1,++i,的这个整体表示i+1之后的值

同理,可以类比出--的效果

6.强制类型转换操作符

(类型),这就是强制类型转换操作符

什么样的变量装什么样的数据,如果强行将其他类型的数据强行放入该变量内,编译器会报警告

我们可以用强制类型转换操作符,将数据的类型改变,

这样,1.1f就是整型数据了,当然整形数据是不能表示小数的,小数点后面的会被消掉

7.printf的进一步介绍

7.1重新认识一下printf

看如下代码

c语言遇到格式说明符,会以该格式说明符所表示的形式打印对应逗号后面的数据,第N个格式说明符对应第N个逗号后面的数据

第一个格式说明符%d将第一个逗号后面的12以整型的方式打印,接着打印drew rew遇到%s,将第二个字符串以%s的形式打印接着打印,遇到\0,打印彻底结束(在第一个字符串里遇到\0,标志这第一个字符串打印结束,第一个字符串打印结束标志着printf打印结束)

直接从第三个格式说明符开始看,%s从d开始打印,打印到s,遇到\0,%s,打印结束,接着打印w遇到\0(第一个字符串的末尾也有一个\0)。

格式说明符大全

7.2怎么打印可以使其看起来更整齐?

设置最小字符宽度,如果一个数的位数不够,就会用空格补上

方法:在%后面加上一个数字,该数字表示最小字符宽度

图中6个数字中位数最大的有5位,所以让每个数的最小字符宽度都是5就可以了

编译器是默认右对其的,可以在%和5之间加  -  ,使其变为左对齐

7.3限定小数位数

编译器默认保留6位,如果我们只想保留2位

只需在字母(f)前面写个小数点,在小数点和字母之间卸下想保留的位数即可

7.4限定输出字符串

我们如果只想输出字符串的前两位,只需在字母(s)前面写个小数点,在小数点和字母之间卸下想保留的位数即可

8.scanf函数

这里的%d也是格式说明符,表示以什么样的格式输入,最后,输入的数据会传给对应的变量

&:取地址操作符,可以取出变量的地址。可见,scanf函数是对地址进行操作,现在只需要知道,要在欲操作的变量前要加&符号就可以了!

scanf输入多个数据

一般情况下,scanf不会读入空格,所以输入两组数据时,可以用空格隔开

但是吧,空格也是字符,在输入字符时,会出现这样的效果

实际上,我们是将空格字符输入到了字符变量b中,导致输入错误

那怎么解决呢?

不打空格直接输(%c一次只能读一个字符)

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

INUYACHA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值