深圳做外贸网站/seo专员工作内容
#include <stdio.h>
int main(void){int a;
scanf("%d",&a);
printf("%d",a);
return 0;}
正在上传…重新上传取消正在上传…重新上传取消
&符号作用是把键盘中输入的值给变量a,使用scanf()时输入数值,需要按一下enter键,主要是为了告诉程序我已经输入完了
如果运行程序时是一闪而过的情况,就需要使用两次getchar(),getchar()作用是让程序暂停,等待输入,第一次是输入了数字,第二次是等待输入,打印的结果就会出来,如果没有scanf()只有printf(),使用一次即可
使用scan()可能会出现以下错误:
解决方法:
1.把scanf()换成scanf_s()
2.在代码第一行添加 #define _CRT_SECURE_NO_WARNINGS
%.2f代表只输出小数点后两位
变量是随时会发生变化的量,如成绩
常量是不会发生变化的量,如圆周率
int 基本整数类型,long short unsigned和c90新增的signed用于提供基本整数类型的变式
如long long int。char用于指定字母和其他字符(*,#),char也可以代表较小的整数。float,dobule,long dobule表示带小数点的数。_Bool代表布尔值(True,False),_Complex和_Imaginary代表复数和虚数。
两大基本数据类型,整数类型和小数类型。
字(word)是设计计算机之初给定的自然存储单位。现在的32位,64位计算机,计算机的字长越大,数据转移越快,允许访问的内存也越多。1 bytes 字节=8bit(比特)
C语言基本数据类型:
整型数据
int 有符号的整型数据
早期是16位计算机,int 范围(-2^15,2^15-1)即(-32768,32767),是ISO C规定的int最小取值范围,ISO是国际标准化组织,现在不管是32位还是64位的计算机,都用一个32位储存一个int值,int 范围(-2^31,2^31-1)即(-2147483648~2147483647),用一位特殊位的值来表示符号,也就是正负。
1.声明多个int 变量:
第一种
int a;
int b;
第二种
int a,b;
2.给变量值:
(1).直接赋值
int a;
a=10;
(2).scanf()获取输入的值
int a;
scanf("%d",&a);
(3). 初始化变量
int a=10;
不要把未初始化的变量和初始化的变量放在同一条声明中,如下面
int a,b=10; //a没有值,b的值为10
注意有小数点和指数表示的数均不是整型,如 1.0,1E
%d指明了在一行中整数打印的位置,也是转换说明,指定printf()用什么格式显示一个值。格式化字符串%d 对应int。使用printf()时注意说明的数量要与打印的数量相同,编译器不会捕获这种错误,会输出内存中的一个值
#include <stdio.h>
int main(void) {int a = 1;printf("%d is %d", a);return 0;
}
正在上传…重新上传取消正在上传…重新上传取消
3.8进制和16进制
在c语言中int 大多为16进制数,0x,0X代表十六进制的数, 0代表八进制数,%o显示八进制数,%x显示16进制数,要显示数的前缀需要使用%#o,%#x,%#X
#include <stdio.h>
int main(void) {int a = 133;printf("shi is %d,ba is %o,hex is %x\n", a, a, a);printf("shi is %d,ba is %#o,hex is %#x\n",a,a,a);return 0;
}
4. 其他整数类型
short int 或short ,可能比int 占用的储存空间小,较小数值,有符号类型
long int 或long ,可能比int 占用的储存空间大,较大数值,有符号类型
longl long int或long long ,可能比long占用的储存空间大,有符号类型,c99标准添加
unsigned int 或unsigned,用于非负值,16位取值范围(0,2^32-1)0-65535,无符号类型可以表示更大的整数,unsigned long int 或unsigned short int 和unsigned short int 或unsigned short,c90标准添加,c99标准用添加了unsigned long long int 或unsigned long long ,无符号类型
在任何有符号类型前面添加关键字signed,可以强调有符号类型的意图。如short ,short int,signed short int ,signed short都是同一种类型。
现在个人计算机常见的设置是,long long占64位,long占32位,short占16位,int 占16位或32位,在使用的过程中,有一部分数值是重叠的
#include <stdio.h>
int main(void) {int a;short b;long c;long long d;printf("占用空间大小为%d\n",sizeof(a));printf("占用空间大小为%d\n", sizeof(b));printf("占用空间大小为%d\n", sizeof(c));printf("占用空间大小为%d\n", sizeof(d));return 0;
}
这里大小为字节,1字节=8比特,int 占32位,short占16位,long 占32位,long long占64位
在有些情况下需要用long储存小的数,一些C语言标准函数要求使用long类型的值,把一个较小的值当作long 类型,可以在值末尾加小写的l或L后缀,在一台int为16,long为32位的机器上,把6当做16位储存,6L当作32位储存。
在支持long long 类型的机器上,ll或LL表示long long 类型的值,如4LL,u或U表示unsigned long long ,如4llu,4ull,4LLU,4ULL
5. 整数溢出
#include <stdio.h>
int main(void) {int a = 2147483647;unsigned int b= 4294967295;printf("%d %d %d\n",a,a+1,a+2);printf("%u %u %u\n",b,b+1,b+2);return 0;
}
%u表示打印unsigned int的值,当无符号溢出时超过最大值时会从0开始,有符号则从最小值开始
c语言未定义有符号类型的溢出规则,可能会出现其他情况。
%ld表示打印long类型的值,如果int 和long类型的大小相同,用%d也可以,但当int 和long大小不同,就会出现错误,%lx表示打印16进制的long类型值,%lo表示打印8进制的long类型值
%hd表示打印short类型的值,%ho表示打印8进制的short类型值,%lu表示打印unsigned long的值
支持long long 系统的系统,%llu表示打印unsigned long long 的值,%lld 表示打印long long的值
使用错误的转换说明(占位符)会得到意想不到的结果
如果待打印的值大于有符号的最大值时会发生下面的情况,如果告诉printf()该数是无符号数,打印一个值,如果告诉是有符号值,将打印另一个值,,对于较小数,无符号还是有符号类型的储存和显示都相同
#include <stdio.h>
int main(void) {
unsigned int a = 10;unsigned int b = 3000000000;printf("%u %d\n", a, a);printf("%u %d\n", b, b);return 0;
}
在int和short大小不同的计算机中,short类型会自动转成int类型,int类型处理数据更高效,传递速度快,用%hd和%d打印出的数值相同,%hd可以显示较大数据被截断成short类型的情况,使用%hd的printf()只会查看32位二进制的后16位,使用%ld的printf()只会查看64位二进制的后32位
使用printf()保证待打印的值和转换说明类型相匹配,还要保证转换说明个数和参数个数相同
char类型数据(字符型数据)
char类型表示字母或标点符号
char类型在计算机储存的是数字,从技术层面上来看,char是整型数据。
计算机采用数字编码来处理字符,即特定的数字表示特定的字符。常用的编码是ASCII码,
ASCII码范围0-127,用7位二进制数表示就可以了。通常char是8位来储存数据,即1 byte(字节),其他系统提供扩展ASCII码(0-255)。其他国家字母超过255,就有了其他编码,如unicode,占用2个字节,2^16可以表示世界上所有的字符。为了节省空间,出现了可变长unicode,如utf-8,utf-32。
1.字符常量和初始化:
char字符常量指的是下方正确表示的值,char类型变量指的是下方a,b,c,d
char a='a'; √
char c=d; × 表示的是变量
char e="f"; × 表示的是字符串
char b=65; √ 此种方法不好,如果系统不支持ASCII码,就会出问题
2. C语言中把字符常量视为int类型而非char类型。
在32位系统中,int占32位,char占8位。
定义一个char常量为fate,把4个8位的ASCII码储存到一个32位的储存单元中,如果把该值赋值给变量a,会出现只有最后8位有效,也就是a的值位e。%c打印char类型的值
#include <stdio.h>
int main(void) {
char a = 'fate';printf("%c",a);return 0;
}
3.单引号只能打印字母、数字、标点,有些ASCII字符打印不出来。如,一些代表行为的字符,退格,换行
打印方法:
(1)使用ASCII码值,前提系统支持ASCII码
char a=7;
(2)使用转义序列,使用特殊的符号来表示特殊的字符
char a='\n';
\0oo 8进制
\xhh 16进制
'\007','\7','\07'都可以
(3)使用16进制数来表示
char a='\x0a';
char a='\xa';
4.有符号还是没符号
有些编译器把char定为有符号类型,char取值范围-128-127。而有些编译器把char视为无符号类型,char取值范围0-255。在C90标准中允许在char前面加上siged和unsigned表示有符号和无符号
_Bool类型
_bool,true和false,代表0和1,实际上也是一种整数类型
可移植类型:stdint.h和inttypes.h
C预言为实现现有类型提供了更多类名,C99。这些新的类型定义在stdint.h中,int32_t表示32位有符号整数类型。在int为32位的系统中,头文件会把int32_t作为int的别名。不同系统也可以定义相同的别名。例如,在int为16位,long为32位的系统中会把int32_t作为long的别名。使用int32_t编写程序,并包含stdint.h头文件时,编译器会把int或long替换成与当前系统匹配的类型。此种类型别名叫做精确宽度整数类型。
int32_t表示的整数类型宽度刚好是32位,但如果系统不支持精确宽度整数类型(不支持C99),还有另一中类型,能保证指示的类型一定是至少有指定宽度的最小整数类型。这类被称作最小宽度类型,int_least8_t表示可容纳8位有符号整数值类型中最小的类型的一个别名。如果系统int为16位,可能不会使用int8_t,但是能可以使用,但可能把int_least8_t当作16位来处理。
还有一种类型是计算速度达到最快的类型集合叫做最小最快宽度类型。int_fast8_t示可容纳8位有符号整数值类型中运算最快的类型的一个别名
C99定义了最大的有符号类型intmax_t,可以储存任何有效的有符号整数值。uintmax_t表示无符号整数类型,可能比long long 和unsinged long更大。
打印int32_t时,有些%d,有些%ld,解决这种方法,提供了字符串宏来显示可移植类型。在inttypes.h提供了PRId32.
#include <stdio.h>
#include <inttypes.h>
int main(void) {int32_t a = 555;printf("a=%d\n",a);printf("a=""%d""\n", a);printf("a=%"PRId32"\n",a);return 0;
}
在C语言中可以把多个连续的字符串合成一个字符串。
printf("a=%d\n",a); 等价于 printf("a=""%d""\n", a);
float、dobule、long dobule类型
C语言标准规定,float类型至少能表示6位有效数字。float占32位,8位表示指数的值和符号,剩下的24位用于表示非指数(尾数和有效数)即其符号。
C语言标准规定,doubule,双精度,最小取值范围相同,但至少能表示10位的有效数字。一般情况下,double占64位,无论哪种方法,dobule至少有13位有效数字,超出了标准的最低位数
long dobule,类型精度至少和double类型相同
浮点型常量表示时可以省略小数点或指数部分,但不能同时省略,如2e5,1.1;可以省略小数部分或整数部分,但不能同时省略,如3.e16,.45e-6,不能在浮点数常量中间加空格,如1.3 e16
默认情况下,编译器假定浮点数是dobule类型,在浮点数加上f或F,就会看作是float类型。可以使用l或L,看作是long double类型,C99添加了一种新的浮点常量 用16进制表示浮点型常量,p10是2的10次方,在16进制数加上前缀0x,用p和P代替e和E,用2的幂代替10的幂
打印时%f表示打印float和dobule类型的浮点数,%e打印指数类型的数,系统支持16进制,用a和A代替e和E。打印long dobule 使用%Lf,%Le或%La的转换说明
浮点数上溢和下溢
超出浮点数表示的最大范围时,打印结果显示inf或infinity,表示无穷大
下溢,在计算过程中损失了原末尾有效位数的数字
复数和虚数
参考书籍:
《C Primer Plus 中文第6版》
相关文章:

C语言学习(三)
#include <stdio.h> int main(void){int a; scanf("%d",&a); printf("%d",a); return 0;} 正在上传…重新上传取消正在上传…重新上传取消&符号作用是把键盘中输入的值给变量a,使用scanf()时输入数值,需要按一下enter…...

TOUGH系列软件建模及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合
TOUGH2系列软件传统地下水模拟软件Feflow和Modflow不同,TOUGH2系列软件采用模块化设计和有限积分差网格剖分方法,通过配合不同EOS模块,软件可以处理各种复杂地质条件下,诸如地热能开发,非饱和带水气运移、油气运移&…...

k8s学习之路 | k8s 工作负载 ReplicaSet
文章目录1. ReplicaSet 基础概念1.1 RS 是什么?1.2 RS 工作原理1.3 什么时候使用 RS1.4 RS 示例1.5 非模板 Pod 的获得1.6 编写 RS1.7 使用 RS1.8 RS 替代方案2. ReplicaSet 与 ReplicationController2.1 关于 RS、RC2.2 两者的选择器区别2.3 总结1. ReplicaSet 基础…...

python实现半色调技术图像转换
半色调技术 半色调技术是一种将灰度图像转换为黑白图像的技术。它是通过将灰度图像的像素值映射到黑白像素值上来实现的。 比如说,在一块只能显示纯黑或纯白的屏幕上,如何将一张灰度图显示出灰度的效果,这时就可以用半色调技术实现。 如下…...

c++面试技巧-基础篇
1.面试官:简述C语言的优缺点。 应聘者:C语言的优缺点如下。 • C语言的优点:C语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构…...

三八妇女节即将到来,跨境电商如何玩转节日营销?
随着国际妇女节的到来,跨境电商商家们都开始了为自己的店铺进行节日营销的准备。商家做节日营销的目的都是一样的,无非都是增加曝光率,拉动客流,增加营业额。但是每一个节日营销的形式是可以不一样的。今年有什么营销玩法呢&#…...

【Java学习笔记】10.条件语句 - if...else及switch case 语句
前言 本章介绍Java的条件语句 - if…else和switch case 语句。 Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法如下: if(布尔表达式) {//如果布…...

解析STM32启动过程
相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x…...

微信小程序开发自学笔记 —— 八、小程序基础库的更新迭代
小程序基础库的更新迭代 小程序基础库 小程序的运行环境是分成渲染层和逻辑层的,在渲染层可以用各类组件组建界面的元素,在逻辑层可以用各类API来处理各种逻辑,组件、API其实都是小程序基础库进行包装提供的,基础库的职责还要处…...

Mysql迁移Postgresql
目录原理环境准备操作系统(Centos7)Mysql客户端安装Psql客户端安装数据库用户空字符串处理成null导表脚本dbmysql2pgmysqlcopy测试在mysql中建表导表测试查看pg中的表原理 Mysql抽取:mysql命令重定向到操作系统文件,处理成csv文件; PG装载&a…...

关于信息安全认证CISP、PTE对比分析
CISP 注册信息安全专业人员 CISP-PTE 注册渗透测试工程师(以下简称PTE) 1 、发证机构 CISP与PTE的发证机构都是中国信息安全测评中心,政府背景给认证做背书,学员信息都在中国政府可控的机构手中; 如果想在政府、国…...

游戏场景编辑器和骨骼动画相关软件
游戏场景编辑器 一.Tiled(2D) Tiled 是帮助你开发游戏内容的 2D 地图编辑器。它的主要功能是可以编辑各种形式的瓦片地图,还支持通过用空图片这种强大的方式来标记额外信息给游戏使用。Tiled 关注的是总体灵活性,同时尽量保持直观性。 Tiled Map 不但…...

vue3常用的API
目录 1.ref函数 2.reactive函数 3.reactive对比ref 4.computed函数 5.watch函数 6.toRef 7..provide && inject 1.ref函数 作用: 定义一个响应式的数据 语法: const xxx ref(initValue) 创建一个包含响应式数据的引用对象(reference对象ÿ…...

Qt中使用
LIB库路径,include 头文件,运行的时候记得吧dll库带上,这基本就完成了。准备工作:Qt可以是傻瓜式的安装就行,GE的驱动里面有exe,直接点击安装即可,完了记得到安装路径把“.h”“.liib”和“.dll…...

controller-runtime搭建operator开发环境
目录 基本结构 注入CRD 基本结构 首先下载相应的go pkg go get -u sigs.k8s.io/controller-runtime 接下来需要创建控制器和Manager Operator的本质是一个可重入的队列编程模式,而Manager可以用来管理Controller、Admission Webhook,包括访问资源对…...

FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持
目录1、前言2、设计思路和框架3、vivado工程详解4、上板调试验证并演示5、福利:工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案: 一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简…...

Django 之 CharField 和 TextField
CharField test_char models.CharField(max_length288)设置长度为 288 并不会报错,这取决于你的数据库后端,mysql char 类型长度为 255,django 里面设置超过 255 并不会有提示,个人感觉有点误导人,起码给个警告也行&…...

recyclerview 使用的坑
1.有不同的布局 12_GridLayoutManager setSpanSizeLookup()方法 - 简书 setSpanSizeLookup 这个方法要会 spanCount和 getSpanSize spanCount/getSpanSize() 才是这一项所占的宽度 2.均分 item布局要设置宽度为match_paraent 3.设置完了。发现高度不一样,…...

DBeaver连接mysql、oracle数据库
1. DBeaver连接mysql 1) 下载DBeaver https://dbeaver.io/download/,并安装 2) 新建数据库连接 3)选择mysql驱动程序 4)填写连接设置内容 5)点击 “编辑驱动设置”,并填写相关信息 6)选择本地…...

Kivy GridLayout 布局
Kivy GridLayout 是一种用于构建用户界面的布局类型,可以帮助我们快速创建具有固定列和行的网格布局。GridLayout 布局是可以适用于任意数量的行和列的布局,然后在这些行和列中放置 UI 元素。 Kivy 的 GridLayout 使用起来类似于 HTML 的表格,…...

Spark高手之路2—Spark安装配置
文章目录Spark 运行环境一、Local 模式1. 下载压缩包2.上传到服务器3. 解压4. 启动 Local 环境5. 命令行工具6. 退出本地模式7. 提交应用二、Standalone 模式1. 解压2. 修改配置文件1)进入解压缩后路径的 conf 目录,复制 workers.template 文件为 worker…...

Java中对象的比较
目录元素的比较基本类型的比较引用类型的比较1. 覆写基类的equals2. 基于Comparble接口类的比较3. 基于比较器比较三种方法对比元素的比较 基本类型的比较 这里就拿整型, 字符型, 布尔型 为例: public static void main(String[] args) {int a 10;int b 20;System.out.pri…...

Python编程训练题2
1.11 有 n 盏灯,编号 1~n(0<n<100)。第 1 个人把所有灯打开,第 2 个人按下所有编号为 2 的倍数的开关(这些灯将被关掉),第 3 个人按下所有编号为 3 的倍数的开关(其…...

Shifu基础功能:设备管理
设备管理 deviceshifu_configmap.yaml中的telemetries表示自动测量记录传导。Shifu通过telemetries中设置的方法,以指定时间向设备周期性地发送请求,来判断设备的连接情况。如果设备出现故障或者连接出现问题,edgeDevice的状态将发生改变&am…...

交互:可以执行命令行的框架才是好框架
上一节课,我们开始把框架向工业级迭代,重新规划了目录,这一节课将对框架做更大的改动,让框架支持命令行工具。 第三方命令行工具库 cobra obra 不仅仅能让我们快速构建一个命令行,它更大的优势是能更快地组织起有许多…...

eunomia-bpf 和 wasm-bpf 项目的 3 月进展
eunomia-bpf 项目是一个开源项目,旨在提供一组工具,用于在 Linux 内核中更方便地编写和运行 eBPF 程序。在过去一个月中,该项目取得了一些新的进展,以下是这些进展的概述。 首先,eunomia-bpf 动态加载库进行了一些重要…...

Spring框架核心功能手写实现
文章目录概要Spring启动以及扫描流程实现基础环境搭建扫描逻辑实现bean创建的简单实现依赖注入实现BeanNameAware回调实现初始化机制模拟实现BeanPostProcessor模拟实现AOP模拟实现概要 手写Spring启动以及扫描流程手写getBean流程手写Bean生命周期流程手写依赖注入流程手写Be…...

k8s-镜像构建Flink集群Native session
一.Flink安装包下载 wget https://dlcdn.apache.org/flink/flink-1.14.6/flink-1.14.6-bin-scala_2.12.tgz 二.构建基础镜像推送私服 docker pull apache/flink:1.14.6-scala_2.12 docker tag apache/flink:1.14.6-scala_2.12 172.25.152.2:30002/dmp/flink:...

在 k8S 中搭建 SonarQube 7.4.9 版本(使用 PostgreSQL 数据库)
本文搭建的 SonarQube 版本是 7.4.9-community,由于在官方文档中声明 7.9 版本之后就不再支持使用 MySQL 数据库。所以此次搭建使用的数据库是 PostgreSQL 11.4 版本。 一、部署 PostgreSQL 服务 1. 创建命名空间 将 PostgreSQL 和 SonarQube 放在同一个命名空间…...

从getBean()分析BeanFactory和ApplicationContext
本文说了哪些问题: BeanFactory 是啥ApplicationContext 是啥什么时候去实例化一个 bean, BeanFactory 和 ApplicationContext 实例化 bean 都是在什么时候 一个 Bean 什么时候被初始化 任何一个 Bean, 都是在 getBean () 的时候被初始化的.BeanFactory 需要字节手动调用 getb…...