c语言 bool_程序的数据要放到哪里呢?|C语言第二篇

42884b4d77518e41e9569f3f37057404.png

C语言第一篇里我写到了编译器,在这里补充一个点,文本编辑器,编译器,IDE(集成开发环境)的区别。

文本编辑器是用作编写普通文字的应用软件,如window的记事本,atom,sublime,它常用来编写程序的源代码。 编译器是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序,有gcc,g++。 IDE是可以编辑代码且可以将代码编辑器,编译器,调试器,图形界面等结合起来的一个集成的应用程序,如Visual Stdio,DevC++等,但口头上我们经常直接将IDE说成了编译器。

在上篇内容中我们讲到 #include,我们将这个比作钥匙区打开仓库拿工具。在专业术语中,#include是一个预处理器指令,作用是把stdio.h的内容“复制”,“粘贴”,到代码中去。
那么问题来了,"stdio.h"里面有什么呢?.h代表的是文件扩展名也指 C语言的头文件。stdio.h的全称是standard input output header——标准输入输出头文件。有了这个文件我们可以对数据进行输入(scanf)输出(printf)。这个输入和输出的内容数据和这篇文章的重点变量有关系。

数据的载体——变量简介

变量存放的是数据。标题的答案:程序的数据要放到变量里。C的变量的类型可以分为好几种,整数型,浮点型,字符型,布尔型…

整数型:顾名思义就是存放整数的类型,主要有int,long (int),long long (int)。

int 在32位和64位的电脑占有四个字节,可以存放2^31-1个不一样的数字。而long,long long我们只要知道它们比int 大就可以了。对于整数型,还有 short (int) 这个类型占的字节比int小,可以放的数字也就比int少了。要怎么使用那么多不同的类型呢?在生活中,程序在不同机器上运行,有些例如单片机的空间小,需要节约空间,就可以用short类型,在电脑上,空间大,我们就一般用int。如果要储存的数据很大,也要用long等数据了~

浮点型: 存放的是数学中的小数,有单精度float,双精度double等。float可以记录小数点后六位的数,double可以记录小数点后15位。浮点型也可以用科学记数法表示:4e16表示4*10^16。e以及后面的数字合起来就是10的几次方。

字符型: 可以放的就是字符啦!有char。可以放字母,符号,数字等,占有的字节是1字符。且只能是一个如'1','2','c'......像'abc','123'这些就不能用字符型来储存了,它们有一个别的名字叫做字符串。之后会发推文讲的~

还有一种很简单很好用的类型布尔型bool:这种类型表示的是真假也可以说是true和false,经常在编程中我们拿来判断这个条件是不是完成了的。


变量的声明

咦?声明是什么?声明就是告诉计算机,你在哪要什么类型的变量,然后让这个变量存在。关于声明,我们可以把变量声明为各种各样的除了C语言关键字之外的名字,如a,b,c,x,y,z,flag,name.....

0ee8965938a7bbb438a71b03a9ef433b.png

图片来源:百度百科

我们只需要记住几种经常用的,其他编译器会告诉我们的

上代码吧!!!

ps:"//"表示的是注释,编译器是跳过这个的,后面的内容是给程序员看的

#include int main(){    int a,b,c=0;    float x,y,z=1.2;    char ch='h';    bool flag=1;    scanf("%d %d\n",&a,&b);//输入整数    scanf("%f %f\n",&x,&y);//输入小数    printf("%d %d %f %0.2f\n",a,b,c,d);//输出    printf("%c %d",ch,flag);}

int a,b,c=0;double x,y,z=1.2;

就是声明的格式,在声明c的时候我们顺便将一个0“=”给了c,为什么要用“=”,它们两个相等吗?其实不是的,在C语言里“=”的意义是赋值,是把0赋值给c这个变量。在声明的同时赋值,我们将它叫做初始化,很专业吧。来看看其他赋值的方式吧。

int a;//声明再赋值a=2;double _i; _i=1.2;

注:这里用了_i的命名,C变量的命名可以用字母数字,下划线,但只能是字母和下划线开头,并且要注意的是不能为C语言关键字。

charbool也是可以先声明在赋值或者直接初始化的~


unsigned和const

usigned翻译成中文是没有符号的,没有负数,所以声明的变量叫做无符号变量。什么作用?看代码注释吧~const的作用是把这个变量声明为常量。不能被赋值。

unsigned int a;//声明无符号整数型变量,不能放负数                            //但放的数字的范围可以变成原来的两倍。const int a=1; //声明一个值为1的常量,不可以被赋值               //但可以赋值给别的变量

占位符和地址符

在上面的代码中,出现了%d %f %c还有"&"这个符号。

①先从简单的讲起,"&"是地址符,作用是提取出&后面的变量的地址。scanf输入数据,在把数据按着地址放到变量里面。

%d %f %c 是占位符,作用呢,很明显,就是在printf和scanf的""里面占一个位置,让数据输入或者输出。由于输入输出数据的不同,我们用d,f,c等来代替。d表示整数,f表示单精度,c表示字符。

对于%d的小特性(在printf中)
%02d——表示占用两个宽度,不到的用0来填充。如1会表示为01。%5d——表示占用5个宽度,不到的用空格来填充。

对于%f的小特性(printf)
%0.2f——表示小数点后有两位。如0.235会变成0.23或者0.24。是不是会四舍五入会根据编译器不同而改变,这里就不举例了。
输出时候用%e——用科学记数法表示。如0.23会输出为23e-2。

在d,f,c前面加个u表示无符号变量

8进制和16进制的打印
如果要打印八进制,可以用%o
如果要打印十六进制,可以用%x
如:printf("%o",8);会输出10 printf("%x",15)会输出F

注:对于scanf("%d %d",&a,&b);它是输入函数,格式和printf差不多,就是多了地址符。仔细看看,两个%d%d之间是有一个空格的,输入的时候要注意中间留个空格给他们。如果是","也要输入一个逗号,要注意中英文。


类型转换

什么是类型转换?就是把不同类型的值相互赋值。上代码,简单粗暴。

int a;  //声明double b=1.2;a=b;    //用printf打印出来会变成了1因为在计算机中浮点数和整        //数储存方式不一样,把浮点的赋值给整数会截去小数部分//反过来int c=1;double d;d=c;    //printf出来会是小数,只不过小数部分为0。//还有char ch='a';int ch1=ch;//printf出来ch1等于65,是a的ASCLL码值。           //同时A是97//对于bool类型bool flag=true;int flag1=flag;//printf出来flag1会是1               //如果flag=flase,flag1会是0               //相反的把数字赋值给bool类型               //除了0之外的其他数都会转化为1

讲到类型转换,平时赋值的时候要核对是不是可以转换。如果类型不同,可能会出现截断,数据错误等问题。

unsigned的赋值也可能会出现问题,把很大的无符号变量赋值给有符号的可能会变成负数。这是因为变量的二进制表示不一样。要了解相关的知识,这里引用一个大佬的推文——原码、反码、补码(一) —— 原码 会讲到一些关于二进制中正负数储存的方式。也可以关注他公众号了解一些信息安全的知识~

结语: 关于C语言中变量的类型,以及相关的知识就讲这么多了。

主要分为:数据类型、声明、占位符和地址符、类型转换,输入输出。

怎么样学好这语言。关键是要多实践,多敲,给自己个小目标,把这推文里的特性都敲一敲,看看运行后会有什么效果。

发现自己还没出关于用编译器的教程,目前公众号的读者定位是刚刚学C的学生,过几天我会出一个图片教程教用devC++(不难,有兴趣可以自己琢磨下),这样子暑假你们就可以慢慢练练了。

感jio不错可以转发或者点击右下角好看哦~

  (。^▽^)也可以关注我

⇣⇣⇣

1960414e820d8051fa763821db70e878.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值