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.....

图片来源:百度百科

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

上代码吧!!!

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不错可以转发或者点击右下角好看哦~

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

⇣⇣⇣

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

  1. c语言双重for循环流程图_使用C语言编写程序对数据进行排序

    使用C语言编写程序对数据进行排序 C语言是一种强大的编程软件,使用十分广泛,用户众多,也是学习其他语言的基础.我作为一个C语言忠实粉丝,以一些常见的C程序来剖析C语言的格式和结构,希望能够为广大初学者 ...

  2. 用c语言编写程序学工系统,[工学]chap02_用C语言编写程序.ppt

    [工学]chap02_用C语言编写程序 Chap 2 用C语言编写程序 2.1 在屏幕上显示 Hello World! 2.2 求华氏温度 100°F 对应的摄氏温度 2.3 计算分段函数 2.4 输 ...

  3. 怎样查看C语言的程序内容,什么手机软件能看c语言文件?

    C语言编译器和C++编译器这2个手机软件就可以,而且还可以直接运行C语言程序,使用起来非常方便,下面我简单介绍一下这2个软件的安装和使用,感兴趣的朋友可以在自己手机上尝试一下: C语言编译器 这是手机 ...

  4. c语言程序处理数据的基本步骤是,c语言程序教程.doc

    c语言程序教程 c语言程序教程 本文由tyr1235831贡献 ppt文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. C语言程序设计 语言程序设计 2008版 版 1 ...

  5. 为什么c语言写程序要挂起,我运行的C语言程序挂起了,应该怎么办?

    导航:网站首页 > 我运行的C语言程序挂起了,应该怎么办? 时间:2017-11-14 相关问题: 匿名网友: 当你运行一个程序时会有多种原因使它挂起,这些原因可以分为以下4种基本类型: (1) ...

  6. C语言编写程序求1到100的和,C语言菜鸟基础教程之求1到100的和

    题目:求1+2+3+--+98+99+100 (1)用数学方法求解 (2)编写C语言程序求解 解: (1)数学方法 S = 1+2+3+--+98+99+100 = (1+100) + (2+99) ...

  7. c语言电子地图程序,地图四色着图的C语言实现

    四色问题又称四色猜想.四色定理,是世界三大数学猜想之一.四色定理是一个著名的数学定理,通俗的说法是:每个平面地图都可以只用四种颜色来染色,而且没有两个邻接的区域颜色相同.1976年借助电子计算机证明了 ...

  8. gcc编译c语言多线程程序的步骤,GCC分步骤编译C语言程序

    上节<GCC编译C语言程序完整演示>讲解的是通过gcc命令一次性完成编译和链接的整个过程,这样最方便,大家在学习C语言的过程中一般都这么做.实际上,gcc命令也可以将编译和链接分开,每次只 ...

  9. java易语言_java程序员,0基础学习开发易语言。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 使用模块:精易模块 , 还有一些别的不过可以使用精易进行替代 首先是登陆模块: 需要登陆的是拼多多,查看了拼多多的页面,发现没有任何处理,密码也是明文提交 ...

最新文章

  1. 当文员学计算机二级,二本学生毕业后在干什么?多半做3种工作,过来人深有同感...
  2. 聊聊这两年我用到的面试套路和收获
  3. N的倍数(抽屉原理)
  4. eclipse中将一个项目作为library导入另一个项目中
  5. java 接口 私有_Java 9:好的,坏的和私有的接口方法
  6. 哲学家就餐问题(如何避免死锁)(多线程版)
  7. intellig idea中jsp或html数据没有自动保存和更换字体
  8. 【CodeForces - 520C】DNA Alignment (快速幂,思维)
  9. python中空字符串的布尔值是什么_Python的布尔值与空值
  10. genneratorConfig的记录 2021-04-18
  11. 图解TCPIP-IP 网际协议-路由控制
  12. Linux学习笔记---更新软件源
  13. Flex移动性能检查列表
  14. 深度学习如何有效攻克鲁棒性的场景重建难题?
  15. win server 2008 r2设置teamviewer13无人值守和开机自启动
  16. 计算机软件吸附效应,流体混合物吸附分离的分子模拟研究
  17. 一加七pro计算机没有记录了,尽享速度与激情:一加7T Pro 迈凯伦版评测
  18. 平安云加速器D-day开幕为企业量身打造“加速”之旅
  19. 北京程序员小哥哥的故事
  20. [HDU5956]The Elder

热门文章

  1. suse linux 11 HBA信息,HP BL660 GEN8 SUSE 11 查询HBA信息 驱动版本 固件版本 设备名称
  2. 调整linux块大小,Linux系统之更改默认块大小
  3. Win7蓝屏代码0x000000001e怎么解决
  4. JS中的prototype、__proto__与constructor,原型和原型链
  5. android 日程安排view,RecyclerView 列表控件中简单实现时间线
  6. html画布360图案填充_在Photoshop中创建带有图案的抽象设计
  7. k2698场效应管参数电流_mos管特性曲线-电流方程与参数详解
  8. 计算机学业水平考试答题卡,高一年级期末信息技术考试(含答题卡)
  9. Java核心篇之HashMap--day6
  10. account表里有什么 银行_模拟一个银行账户类Account,账户类中包括所有者、账号、余额、账户总数、存款、取款等信息。_学小易找答案...