c++ 概念及学习/c++ concept&learning(二)
上篇内容讲述了整个语言的发展【为什么会产生编程语言】,以及学习C++所需要掌握的内容。
这节开始认识第一部分最基本的内容:C++的内建类型,也就是基本类型。
在这些知识之前留一个问题:为什么基本所有语言中都有相似的这些基本类型。
bool : 用于表示真/假
bool b_ret1 = true;
bool b_ret2 = false;
short /long :short用于缩减/增大整数表示的范围,也就是占用内存的多少。
signed / unsigned :指定符号。但不会改变内存大小。
int(signed int) / unsigned int :表示一般意义上的整数,两者的区别在于有无符号。
加上short,signed,unsigned后,就可以控制整数的范围。所以有了多种整数:
int(signed int) / unsigned int
signed short int / unsigned short int
signed long int / unsigned long int
int age = ;
unsigned int age2 = ;
short int age3 = ;
unsigned short int small_int = ;
unsigned long int big_number = ;
char(signed char) / unsigned char :表示字符。编程中用char已经足够了,效率也不会用影响。
这个类型有些纠结,本意是表示字符的,但是经常用它的数组存储数据,等说到指针的时候,再详细说吧。
char letter_char = 'c';
wchar_t :宽字节字符。由于char在计算机存储中占用一个字节,最多能表示256个字符,
英语字符是足够储存,但是光汉字就有上万个,char已经无能为力了。
所以wchar_t占两个字节,甚至四个字节,完成足够表示其它民族的语言。
wchar_t wide_char = L'c'
float: 单精度浮点 double:双精度浮点 long double :扩展精度
两个类型在概念上都是小数,double比float多占用了内存空间,表示的更精确。一般的小数用float就可以了。
float _length = 3.5f;
double _length = 3.5555
long double l_legnth = .5e-3L
void:空类型。一般用表示无返回值 ,或者不确定类型的对象。
return void;
void* p = ;
Windows XP 32位平台下的取值范围:
Type |
Size |
数值范围 |
无值型void |
0 byte |
无值域 |
布尔型bool |
1 byte |
true false |
有符号短整型short [int] /signed short [int] |
2 byte |
-32768~32767 |
无符号短整型unsigned short [int] |
2 byte |
0~65535 |
有符号整型int /signed [int] |
4 byte |
-2147483648~2147483647 |
无符号整型unsigned [int] |
4 byte |
0~4294967295 |
有符号长整型long [int]/signed long [int] |
4 byte |
-2147483648~2147483647 |
无符号长整型unsigned long [int] |
4 byte |
0~4294967295 |
long long |
8 byte |
0~18446744073709552000 |
有符号字符型char/signed char |
1 byte |
-128~127 |
无符号字符型unsigned char |
1 byte |
0~255 |
宽字符型wchar_t (unsigned short.) |
2 byte |
0~65535 |
单精度浮点型float |
4 byte |
-3.4E-38~3.4E+38 |
双精度浮点型double |
8 byte |
1.7E-308~1.7E+308 |
long double |
8 byte |
由于平台和编译器的不同,每种类型的范围及所占内存大小并不确定。想具体确定可以用下边代码(转自:http://www.cnblogs.com/ma6174/archive/2012/02/04/2337958.html)
#include <stdio.h>
#include <limits.h>
#include <float.h>
#include <stdlib.h>
int main(void)
{
printf("char类型的变量存储值从%d到%d\n", CHAR_MIN, CHAR_MAX);
printf("unsigned char类型的变量存储值从0到%u\n", UCHAR_MAX);
printf("short类型的变量存储值从%d到%d\n", SHRT_MIN, SHRT_MAX);
printf("unsigned short类型的变量存储值从0到%u\n", USHRT_MAX);
printf("int类型的变量存储值从%d到%d\n", INT_MIN, INT_MAX);
printf("unsigned int类型的变量存储值从0到%u\n", UINT_MAX);
printf("long类型的变量存储值从%ld到%ld\n", LONG_MIN, LONG_MAX);
printf("unsigned long类型的变量存储值从0到%lu\n\n", ULONG_MAX);
printf("long long类型的变量存储值从%lld到%lld\n", LLONG_MIN, LLONG_MAX);
printf("unsigned long long类型的变量存储值从0到%llu\n", ULLONG_MAX);
printf("最小的非零float类型变量的值的是%.3e\n", FLT_MIN);
printf("最大的float类型变量的值的是%.3e\n", FLT_MAX);
printf("最小的非零double类型变量的值的是%.3e\n", DBL_MIN);
printf("最大的double类型变量的值的是%.3e\n\n", DBL_MAX);
printf("最小的非零long double类型变量的值的是%.3Le\n", LDBL_MIN);
printf("最大的long double类型变量的值的是%.3Le\n", LDBL_MAX);
printf("float类型的变量提供%u位精度的小数位数\n", FLT_DIG);
printf("double类型的变量提供%u位精度的小数位数\n\n", DBL_DIG);
printf("long double类型的变量提供%u位精度的小数位数\n", LDBL_DIG);
system("pause");
return ;
}
c++ 概念及学习/c++ concept&learning(二)的更多相关文章
- c++ 概念及学习/c++ concept&learning(一)
学习过计算机组成原理就会知道,处理器会从主存中取得指令,然后进行解释执行.而他们的交流方式是以二进制方式进行的,也就是他们只能识别1和0 :其实计算机是不知道1和0的,现在的实现方式是以高电压与低电压 ...
- c++ 概念及学习/c++ concept&learning(三)
这一篇继续说说程序设计中的基本语句:控制块 一 if类控制语句 if if else if , else if ,else if(条件语句){如果条件为真,要做的一些事情} if(条件语句) {如 ...
- Deep Learning(深度学习)学习笔记整理系列二
声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部 ...
- 多视图学习(multiview learning)
多视图学习(multi-view learning) 前期吹牛:今天这一章我们就是来吹牛的,刚开始老板在和我说什么叫多视图学习的时候,我的脑海中是这么理解的:我们在欣赏妹子福利照片的时候,不能只看45 ...
- 网络表示学习Network Representation Learning/Embedding
网络表示学习相关资料 网络表示学习(network representation learning,NRL),也被称为图嵌入方法(graph embedding method,GEM)是这两年兴起的工 ...
- 机器学习--集成学习(Ensemble Learning)
一.集成学习法 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好) ...
- 【转载】 《Human-level concept learning through probabilistic program induction》阅读笔记
原文地址: https://blog.csdn.net/ln1996/article/details/78459060 --------------------- 作者:lnn_csdn 来源:CSD ...
- 【Unity Shaders】学习笔记——SurfaceShader(二)两个结构体和CG类型
[Unity Shaders]学习笔记——SurfaceShader(二)两个结构体和CG类型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5596698. ...
- 增强学习(Reinforcement Learning and Control)
增强学习(Reinforcement Learning and Control) [pdf版本]增强学习.pdf 在之前的讨论中,我们总是给定一个样本x,然后给或者不给label y.之后对样本进行 ...
随机推荐
- android MD5
public static String MD5(String str) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstan ...
- Quartz的misfire特性
Quartz的misfire特性 只有一个线程.多个job 第一个job产生misfire(executeTime>Interval) 且是repeatForever 那么只会运行第一个job, ...
- 76. Minimum Window Substring
题目: Given a string S and a string T, find the minimum window in S which will contain all the charact ...
- NSArray 数组排序
//方法1,使用自带的比较器 //compare是数组自带的比较方法 NSArray *array=[NSArray arrayWithObjects:@"3",@"1& ...
- python脚本实例001 - 通过列表内容判断输入输出信息
要点总结: 输入输出方法,input().print()方法 list列表应用,list是一种有序的集合,可以随时添加和删除其中的元素. 条件语句if-else应用 #! /usr/bin/pytho ...
- C语言全局未初始化数据段分析
前言: 在分析C语言全局未初始化变量时,发现在目标文件中全局未初始化变量并不是直接放在bss段中. 再后来发现在两个.c文件中定义同名的全局变量,链接时居然没有发生符号重定义错误.才知道C语言弱定义的 ...
- Collection_Compare
冒泡 package com.bjsxt.sort.bubble; import java.util.Arrays; public class BubbleSort1 { /** * @param a ...
- Windows JAVA 环境配置
Java SE Development Kit Downloads http://www.oracle.com/technetwork/java/javase/overview/index.html ...
- HDU 1686 (KMP模式串出现的次数) Oulipo
题意: 求模式串W在母串T中出现的次数,各个匹配串中允许有重叠的部分. 分析: 一开始想不清楚当一次匹配完成时该怎么办,我还SB地让i回溯到某个位置上去. 后来仔细想想,完全不用,直接让模式串向前滑动 ...
- eclipse export Android jar with jni
/*********************************************************************** * eclipse export Android ja ...