新手入门计算机系列-C语言教程-第四期之常量,变量和数据类型(上)

在开始学习这节的内容之前,我们先要会使用基本的输入输出函数printf 和 scanf。

printf函数

printf 函数会在屏幕上打印你要的字符串,它的返回值是打印的字符个数。我们主要得明白如何给他写参数。

如下面代码所示,printf的参数主要分为两个部分,一部分是双引号内的字符串,一部分是逗号后面的参数列表。其中参数列表是与字符串内的 %+一定符号 ,配合使用的。

字符串内的 "% + 一定符号" 在被打印时会按照顺序和一定格式替换为参数列表中的参数。

int a = 12;
float b = 1.2345;
printf("the number is: %d and %.2f",a,b);

其中的 "% + 一定符号"  具体来说是这样 %[flags][width][.precision][length]specifier ,参考cplusplus.com/reference/cstdio/printf/

我们一般只用几种

%d打印十进制整型
%05d打印十进制整型,但补充前导零,位宽为5,例如 12 -> 00012, 123 -> 00123
%f打印浮点型(也就是小数)
%.2f打印浮点型,但保留两位小数
%c打印单个字符
%s打印字符串
%e用科学计数法打印
%o打印八进制整型
%x打印十六进制整型
%%打印一个'%'

scanf函数

scanf函数用来给程序输入数据,与printf的用法大同大异。其参数也有字符串和参数列表两部分。

不同的是scanf字符串中的内容除了%...以外需要你原封不动的输入。程序执行到scanf后就会等待你的输入,输入以空格或者回车等空白字符结束。一般只会这么用↓↓↓

char str[100]; //声明一个字符串叫str
scanf("%s",str);
int a;
scanf("%d",&a);
float b;
scanf("%f",&b);

如果不是字符串,别忘了在变量名前加一个'&'因为scanf要求参数列表内的参数是地址,'&'是取地址操作符,&a的意思就是a变量的地址。

常量

常量是诞生就不可改变的量,数字常量后可以加字符表示数据类型,可以加前缀表示进制

符号例子意义
前加0012表示八进制
前加0x0x1a表示十六进制
后加U121U表示无符号的整型
后加L123L长整型 long

给常量起名,让常量像变量一样有个名字,我们有三种方法:宏定义,修饰变量和枚举类型。

1.宏定义

#define HEIGHT 12
#define WIDTH 187UL
#define FLOAT1 123.11

宏定义原理只是简单的替换,如上代码在预处理时会把代码中的HEIGHT替换为12。

2.const修饰变量

const int a = 112;
const int b = -89;
const float c = 1.231;

被const修饰的变量就不可更改了──只读。除了具有常量的属性,其他方面是和变量相同的,例如:作用域,生命周期。

3.枚举常量

使用 enum + 枚举类型名 + {枚举元素1, 枚举元素2,... }  来定义,具体看例子代码

enum DAY         //定义枚举类型DAY,有七个值
{
    MON,TUE,WED,THU,FRI,SAT,SUN
};
enum DAY day;    //定义枚举变量day,day可以有上述枚举类型的七个值


enum DAY        //定义枚举类型DAY的同时也定义枚举变量day
{
    MON,TUE,WED,THU,FRI,SAT,SUN
} day;

enum DAY         //不定义枚举类型,直接定义枚举变量day
{
    MON,TUE,WED,THU,FRI,SAT,SUN
} day;

在代码中,我们可以给MON等枚举元素赋值,如果不赋值,默认会从0开始逐个加1,若赋值,则未赋值的会逐个加1。

enum DAY
{
    MON, TUE , WED = 4 ,THU, FIR, SAT, SUN;
}
//在这个例子中,MON = 0, TUE = 1, WED = 4, THU = 5,
//FRI = 6, SAT = 7, SUN = 8

我们定义枚举类型/变量后就可以使用它,例如:

enum 
{
    MON, TUE , WED ,THU, FIR, SAT, SUN
} day;


day = TUE;
day = THU;
day = MON;    //可以给day 赋值任意枚举元素

printf("%d",day);    //会打印0
printf("%d",MON);    //也会打印0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值