2021-08-30 C语言学习第一天

数据和C

本文主要学习以下内容:

  • 关键字: int 、short 、long 、 unsigned 、char 、 float 、double 、 _Bool 、 _Complex 、 _Imaginary
  • 运算符: sizeof()
  • 函数: scanf()
  • 整数类型和浮点类型的区别
  • 如何书写整型和浮点型常数,如何声明这些类型的变量
  • 如何使用printf()和scanf()函数读写不同类型的值

变量和常量

数据主要分为变量与常量数据,有些数据类型在程序使用之前已经预先设定好了,在整个程序的运行过程中没有变化,这些称为常量;其他数据类型在程序运行期间可能会改变或被赋值,这些称为变量。

数据类型关键字

C语言的数据类型关键字有:int 、short 、long 、 unsigned 、char 、 float 、double 、 _Bool 、 _Complex 、 _Imaginary
int关键字表示整数类型。后三个关键字(long 、short 、signed 和unsigned)用于提供基本整数类型的变式,如unsigned short int 和long long int。
另外,char类型也可以表示较小的整数
float 、 double 、和long double表示带小数点的数。 _Bool类型表示布尔值(true或false), _Complex和_Imaginary分别表示复数和虚数。
这些关键字创建的类型,按计算机的存储方式可分为两大基本类型:整数类型浮点数类型

  • 整数
    在C语言中,整数是没有小数部分的数。例如,2,-3,256都是整数。3.14和2.00都不是整数
  • 浮点数
    浮点数与数学中实数的概念差不多。2.75 、3.16E7 、7.00和2e-8都是浮点数。在一个值后面加上小数点,该值就成为一个浮点值。这里3.16E7表示3.16乘以10的7次方。

浮点数和整数的存储方案是不同的。计算机把浮点数分成小数部分和指数部分来表示,而且分开存储这两部分

C语言的基本数据类型

  • int类型
    int类型是有符号整型,int类型的值必须是整数,可以是正整数 、负整数或零。
  • 声明int变量
    先写上int,然后写上变量名,最后加上一个分号。可以在int后面列出多个变量名,变量名之间用逗号分隔。如下:
int erns;
int hogs,cows,goats;
  • 初始化变量
    初始化变量就是为变量赋一个初始值。可以直接在声明中完成。
int hogs = 21;
int cows =32,goats = 14;
int dogs,cats = 94; /*有效,但是这种格式很糟糕 */

上面的最后一行只初始化了cats,并未初始化dogs。这种写法很容易被误会dogs也初始化为94,最好不要这样写。

  • 打印int变量
    可以使用printf()函数打印int类型的值,使用%d。
    %d为转换说明,它指定了printf()应使用什么格式来显示一个值。格式化字符串中的每个%d都要与待打印的变量列表中的int值匹配。如果数量不同,编译器不会报错,但是会得到错误的结果。
int ten = 10;
int two = 2;
printf("%d minus %d is %d\n",ten,2,ten -two)
  • 八进制和十六进制
    十六进制的每一位的数恰好是由4位二进制数表示。例如:十六进制数3的二进制表示是0011,5是0101,因此十六进制的35表示是00110101。这种转换关系使得十六进制和二进制的转换非常方便。
    316 + 5 = 3222*2+5
    在二进制里面乘以2的多少次方就是把这个数小数点右移几位。
    如果要打印不同进制的数,需要使用不同的转换说明:
    十进制为%d
    十六进制为%x
    八进制为%o
    另外,如果要显示各进制数的前缀,必须使用%#o 、%#d 、 %#x 。

  • char类型
    char类型用于存储字符(如,字母或标点符号),但是从技术层面来看,char是整数类型。因为char类型实际上存储的是整数而不是字符。计算机使用数字编码来处理字符,美国最常用的是ASCII编码,C语言也使用此编码。存储字母A实际上存储的是整数65,C语言把1字节定义为char类型占用的位数。
    声明char类型的变量与其他方式相同。

char response;

初始化时不必背下ASCII码,可以直接使用一个单引号。

char broiled;
broiled = 'T';

注意不能使用双引号,双引号是字符串

broiled = "T" /* T为字符串 */
  • 非打印字符
    单引号只适用与字符 、数字 和标点符号,有些ASCII字符会打印不出来(如,退格,换行,终端响铃或蜂鸣)。C语言提供了3种方法来表示这些字符。
    第一种方法是使用ASCII码
char beep = 7;

第二种方法是使用转义序列

转义序列含义
\a警报
\b退格
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符
\\反斜杠
\’单引号
\"双引号
\?问号
\0oo八进制
\xhh十六进制
  • 打印字符
#include<stdio.h>
int main(void)
{
	char ch;
	printf("Please enter a character.\n");
	scanf("%c",&ch);
	printf("the code for %c is %d.\n",ch,ch);
    
    return 0;
}

运行该程序后,输出示例如下:

Please enter a character.
C
the code for C is 67.
  • _Bool类型
    _Bool类型用于表示布尔值,即逻辑值true和false。因为C语言用值1表示true,值0表示false,所以_Bool类型实际上也是一种整数类型。但原则上它仅占用一位存储空间。

  • float 和double类型
    C标准规定,float类型必须至少能表示6位有效数字,即float类型必须至少精确表示小数点后的6位有效数字,如33.333333.
    C语言提供的另一种浮点类型是double(意为双精度)。double类型必须至少能表示10位有效数字。

  • 类型大小(sizeof)
    sizeof是C语言的内置运算符,以字节位单位给出指定类型的大小。C99和C11提供%zd转换说明匹配sizeof的返回类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值