【CPP】数据和C
%f是浮点型的占位符,%f.2表示显示到小数点后两位,.2称为修饰词
变量可以在程序执行过程中变化和指定,而常量不可以。
【数据类型关键字】int long short unsigned char float double _Bool _Complex(复数) _Imaginary(虚数)
【int 类型】
整数类型之所以有这么多种(int,unsigned int,long,short等等),他们最主要的区别在于取值范围不同和是否能够取负值。
整型 int类型的范围是-32768~32767
声明变量:int a,b,c; int a;int b; int c;都可以,都是为4个int型变量赋予名称并分配空间。
赋值:直接赋值a=1; 通过函数scanf("%d",&a); 初始化变量int a=1;
注:不要在同一个声明语句中同时出现初始化和未初始化变量。(int a,b=1;)易引起误解。
int型常量:C把大多数整数常量看作int型,如果很长就看做long,更长就看做long long
打印int型:%d(格式说明符),如果格式说明符和要打印的值的数目不相符,编译器可能无法检查出该错误,所以写的时候一定要注意
其它进制:八进制前缀0 十六进制前缀0x,格式化说明符分别是%0,%x
注:要显示0和0x的前缀,必须在说明符中加入符号# (%#x)
【其他整数类型】
short:小数值,更少的存储空间 %u long:大数值,更大的存储空间 %ld %l0八进制 %lx十六进制
long long:更更大 unsigned int:无符号,(非符值)
在诸多整数类型中,首先考虑unsigned类型,大多数时候不需要负数,并且可以取得更大的计数范围
数值过大会产生溢出的现象
【字符型】
实际上储存在计算机中,用的是整数ASCll码,如存储A,实际是65.
单引号字符,双引号字符串。
【非打印字符】
方式一:使用ASCLL码赋值,如蜂鸣char beep = 7;
方式二:利用转义序列,如char nerf = ‘\n';
方式三:用十六进制标示字符常量。
【打印字符】
%c打印一个字符,如果用%d可打印出字符的ASCLL码
【_Bool类型】
布尔类型,整数类型,只需一位存储,表示true,false
【浮点型】
float:至少六位有效数字,e-27~e37
double:(双精度)至少十位有效数字
long double:更高精度
【编译器】
默认情况下,编译器将浮点常量当作double类型,如some是一个float变量:
some = 4.0 * 2.0
那么4.0和2.0被存储为double类型,乘积运算使用双精度,而结果被截为float长度,这能保证运算的精度,但是会减慢运算速度。
但是可以通过f或F后缀使编译器把浮点常量当作float类型,如2.3f,l或L后缀可以使其成为long double类型。
打印浮点值:%f表示float或double类型,%e表示指数计数法的数字。
【浮点值的上溢和下溢】
【复数和虚数类型】
头文件complex.h包含了复数complex,虚数imaginary。
注:printf输出时如需换行,只要不在引号内部或一个单词中间换行就行。
输出浮点变量时如果使用整型的格式%d会输出垃圾值,反之亦然。
#include<stdio.h>
int main()
{
float salary;
scanf("%f",&salary);
printf("now i know %d.",salary ); return ;
}//输出无论如何都是0

通常退格符\b不会删除退回时经过的字符,但是有时会删除。
#include<stdio.h>
int main()
{
int salary;
printf("please enter your monthly salary:");
printf("$_______\b\b\b\b\b\b\b");
scanf("%d",&salary);
printf("now i know %d a year you get.",salary* ); return ;
}

【刷新输出】
printf输出时并不是直接把内容传递到屏幕上,在程序和屏幕间有一个称为缓冲区(buffer)的中介存储区域,内容是由缓冲区被传递到屏幕上的。
那么什么时候缓冲区的内容会被传到屏幕上呢?
1、缓冲区满了的时候 2、遇到换行符时 3、需要输入时
手动刷新缓冲区:1、打印一个换行符 2、fflush()函数
//编程练习 3.11 #include<stdio.h>
int main()
{
//输入ASCLL码值输出字符
char x=;
scanf("%d",&x);
printf("this char is %c.\n",x); //发出警报声并输出指定字符串
printf("\a By the great Pumpkin.what was that?\n"); //读入一个浮点数,分别以小数形式和指数形式打印
float a=11.23;
printf("%f\n",a);
printf("%e",a); //输入年龄输出秒数
unsigned long old;//无符号长整型才不会溢出,溢出会变成负数
printf("how old are you?\n");
scanf("%d",&old);
printf("now you are %ul seconds old.",old*3.156e7);//一年有3.156e7秒 return ;
}
//未完 还有两道题
仅允许非商业转载,转载请注明出处
【CPP】数据和C的更多相关文章
- Mac OS下编写对拍程序
介绍 对拍是信息学竞赛中重要的技巧,它通过一个效率低下但正确率可以保证的程序,利用庞大的随机生成数据来验证我们的高级算法程序.对拍最大的优势在于可以通过人力所不能及的速度和数量达到验证的效果.下面我们 ...
- Linux 常用操作和命令
腾讯云部署 java web 环境:https://blog.csdn.net/niceLiuSir/article/details/78879844 Tomcat部署和配置:https://blog ...
- jso cpp解析读写数据
json write : { "array" : [ { "aaaaaa" : "bbbbbb", "number" : ...
- 点云数据保存为pcd文件_pcd_write.cpp
#include <iostream>#include <pcl/io/pcd_io.h>#include <pcl/point_types.h> int main ...
- Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取
CMakeLists.txt project(wMA) add_library(wMA SHARED wMA.cpp) wMA.h #pragma once #ifndef WMA_WMA_H #de ...
- APM程序分析-ArduCopter.cpp
该文件是APM的主文件. #define SCHED_TASK(func, rate_hz, max_time_micros) SCHED_TASK_CLASS(Copter, &copter ...
- OpenSceneGraph 笔记--如何导出三角形数据
OpenSceneGraph 笔记--如何导出三角形数据 转载:http://blog.csdn.net/pizi0475/article/details/5384389 在OpenSceneGrap ...
- C++中static数据成员详解
本文和大家分享的主要是c++中static数据成员的相关用法及源码示例,希望能帮助大家更好的学习C++. static(静态存储)数据成员 StaticTest.cpp : 定义控制台应用程序 ...
- 【cocos2d-x + Lua(2) C++和lua数据通讯之间的互调】
我们主要解决如下几个问题: 转载注明出处:http://www.cnblogs.com/zisou/p/cocos2dx-lua2.html 1,C++如何获取Lua里面的一个变量值? 2,C++如何 ...
随机推荐
- Java NIO 核心组件学习笔记
背景知识 同步.异步.阻塞.非阻塞 首先,这几个概念非常容易搞混淆,但NIO中又有涉及,所以总结一下[1]. 同步:API调用返回时调用者就知道操作的结果如何了(实际读取/写入了多少字节). 异步:相 ...
- 每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作
准备工作 继续连接到mongo C:\Users\zouqi>mongo MongoDB shell version: 3.0.7 connecting to: test 查看数据库和集合 &g ...
- JDBC01 利用JDBC连接数据库【不使用数据库连接池】
目录: 1 什么是JDBC 2 JDBC主要接口 3 JDBC编程步骤[学渣版本] 5 JDBC编程步骤[学神版本] 6 JDBC编程步骤[学霸版本] 1 什么是JDBC JDBC是JAVA提供的一套 ...
- Spark认识&环境搭建&运行第一个Spark程序
摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...
- AugularJS从入门到实践(一)
前 言 前端 AngularJS是为了克服HTML在构建应用上的不足而设计的.(引用百度百科) AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷.Angu ...
- (转发)RequestDispatcher的include()方法和forward()方法的区别
forward(): 该方法用于将请求从一个Servlet传递给服务器上的另外的Servlet.JSP页面或者是HTML文件. 在Servlet中,可以对请求做一个初步的处理,然后调用这个方法,将请求 ...
- 如何通过css设置表格居中
CSS控制整个表格居中,不只是让表格里的文字居中,是整个表格居中1. 不用table的Align="center",要用CSS实现2. 不加<center></c ...
- UltraEdit MAC破解方法
在终端输入 printf '\x31\xC0\xFF\xC0\xC3\x90' | dd seek=$((0x92D370)) conv=notrunc bs=1 of=/Applications/U ...
- Java后端开发书架
本人摘录于江南白衣文章,文章地址:http://calvin1978.blogcn.com/articles/javabookshelf.html 书架主要针对Java后端开发. 3.0版把一些后来买 ...
- jmeter连接配置带跳板机(SSH)的mysql服务器
jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远 ...