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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目职责_项目经理的9个职责

虽说懂技术是项目经理的一个必要项,但事实上,很多技术出身的人,根本干不好项目经理。当项目经理之前,是活儿管你,让你干什么你就干什么,只对任务结果负责,对整体目标不负责。当项目经理之后&…

jenkins 安装插件失败_Jenkins 自动化安装插件

手工安装 Jenkins 插件的方法通常,我们有两种方法安装 Jenkins 插件。第一种方法是到 Jenkins 插件管理页面搜索插件,然后安装。第二种方法是上传 Jenkins 插件的 hpi 文件安装。这两种方法能满足大多数人的需求。第一种方法,如下图所示&…

anaconda下python中matplotlib画图无法显示中文

第一步:在自己电脑里选择喜欢的字体,搜索位置为C:\Windows\Fonts,我选择的是SimSun 第二步 查找Matplotlib默认字体目录 打开anaconda prompt,输入python,接下来进入查找过程 查找代码如下 import matplotlib print(matplotlib.…

Python编程及高级数据分析

一、介绍(11月22日) 小问题找函数 大问题找包 python数据分析常用的包 数据库实现的功能的在panda包里面找 其中M\S\P是数据可视化工具 深度学习使用的包是pytorch(facebook支持) 中文的nlp:Jieba、pynlpir 英文的nlp:NLTK 学python前的准…

helm安装_Helm部署和体验jenkins

运行在Kubernetes上的Jenkins下图来自rancher官方博客,在kubernetes环境下,jenkins任务被交给各个pod执行,这些pod在需要时被创建,任务结束后被销毁,这样既能合理利用资源,又能给每个任务提供一致的干净的初…

【无标题】【一周安全资讯1223】一图读懂《工业和信息化部办公厅关于组织开展网络安全保险服务试点工作的通知》;15亿条纽约房产记录泄露

要闻速览 1、一图读懂《工业和信息化部办公厅关于组织开展网络安全保险服务试点工作的通知》 2、国家数据局《“数据要素”三年行动计划 (2024—2026年)》公开征求意见 3、中国信息通信研究院发布《公共数据授权运营发展洞察 (2023年)》 4、15亿条纽约房产记录泄露&#xff0c…

自定义键盘码_无线+矮轴≤299?ikbc S200 2.4G 机械键盘测评

早在18年初,Cherry就发布了适用于笔记本及超薄键盘的全新轴体MX Low Profile,也就是为人所熟知的“矮轴”。之后Ducky、酷冷至尊、FILCO、ikbc等一众厂商也先后推出了搭载Cherry矮轴的超薄机械键盘,不过市场表现一直有些不温不火。在码呆看来…

simpledateformat格式_如何使用SimpleDateFormat?

SimpleDateFormat是一种比较常用的时间类,可以实现对时间按照一定的字符串格式进行处理。DateFormat类的作用把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。DateFormat是一个抽象类,一般使用它的的子类SimpleDa…

李沐老师的《动手学深度学习PyTorch》中的d2lzh_python包的安装

关于RNN章节 以及模型章节等会使用到d2l的python包 cmd下载地址:pip install d2l -i https://pypi.doubanio.com/simple/

人体轮廓_人体艺术:赏世界著名的女人体油画:身体轮廓

阅读本文前,请您先点击上面的“十点姐姐”,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享,完全是免费订阅,请放心关注。 …

c语言未声明的标识符什么意思_C语言中%d和%f是什么意思啊?

%d表示输入或输出十进制有符号数;%f表示输入或输出浮点数(float,四字节表示);在C语言中输出不同数据时需要用到不同的格式字符,%d是用来输出十进制整型数据的实际长度输出,%f是以小数形式输出单…

李沐老师《动手学深度学习》课程总结1

数据操作 1、 创建数组:形状、数据类型、数据值 2、 访问元素:[1, 2] 访问第二行第三列 [1, :] 访问第二行 [1:3, 1:] 子区域:第二行至第四行前一行到第二列之后所有 [::3, ::2] 子区域:每三行一跳 第零、三…行拿出; 第零、二…列…

gimp 抠图_gimp抠图教程:gimp快速实现抠图效果

摘要:将图像中需要的部分从画面中精确地提取出来,我们就称为抠图,抠图是后续图像处理的重要基础,关于gimp的快速抠图技巧你们知道吗?将图像中需要的部分从画面中精确地提取出来,我们就称为抠图,抠图是后续…

docker build -t_在Docker环境构建、打包和运行Spring Boot应用

为何考虑采用Docker?Docker是提供用户构建镜像的一种容器化技术,所构建的镜像包含了主要的应用程序和运行应用所需的所有依赖项。该镜像可在任何虚拟机或物理机器上的Docker容器上运行。它的强大之处在于允许用户在开发、测试、预生产和生产中运行同样的…

Java内部类是什么?

在类内部可定义成员变量和方法,且在类内部也可以定义另一个类。如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 就称为内部类(或称为嵌套类),而类 Outer 则称为外部类(或称为宿主类)。 …

MOOC-人工智能实践:Tensorflow笔记4.2自制数据集txt文件和数据集不匹配解决办法(读取文件名并提取内容并合并原始内容与提取内容)

1、读取文件名称生成txt文件 # P01 批量读取文件名,并将读取的文件名保存到指定路径下的txt中(带.*** 后缀)import os def ListFilesToTxt(dir, file, wildcard, recursion):exts wildcard.split(" ")files os.listdir(dir)for …

file数组 删除文件_java编程IO基础之一:File类

在整个java.io包中,File类是唯一的一个与文件本身操作有关的类,既可以执行文件的创建、删除、重命名,取得文件大小和修改日期。File的构造函数:public File(String pathname) 给定一个要操作文件的完整路径。public File(File par…

excel工具箱_WPS搬来救兵智能工具箱,强大到Excel没有还手之力

EXCEL不加班眼见Excel连胜2局,WPS慌了,搬来救兵智能工具箱,这个神器,所到之处,问题瞬间解决。这智能工具箱究竟是何方宝物,强大到Excel没有还手之力!Excel2016的闪电填充确实牛逼,不…

mysql cve 2016 3521_MySQL-based databases CVE -2016-6663 本地提权

date: 2016/11/3author: dlive0x01 漏洞原文翻译水平不高求轻喷感觉作者在写文章的时候有些地方描述的也不是特别清楚,不过结合poc可以清晰理解漏洞利用过程0x04漏洞利用过程总结给出了清晰的漏洞利用过程,结合poc食用效果更佳# http://legalhackers.com…

mysql 数据迁移_CentOS7迁移Mysql数据库文件

1、查看Mysql安装路径cat /etc/my.cnf2、查看数据盘路径df3、数据盘下创建mysql数据目录,设置目录磁盘写入权限cd /mnt1/xfrb_database/mkdir mysqlchmod -R 777 /mnt1/xfrb_database/mysql/ls -l -a目录创建和权限设置成功。4、停止Mysql服务,拷贝Mysql…