会飞的鱼

2020
Godam
首页 » 学习笔记 » C++ primer plus 笔记

C++ primer plus 笔记

运算符sizeof和头文件limits

    sizeof 运算符返回类型或变量的长度,对类型名(如int)使用sizeof运算符时,应将名称放在括号中;但对变量名(如n_short)使用该运算符,括号是可选的:

cout<<"int is"<<sizeof(int)<<"bytes.\n";
cout<<"short is"<<sizeof n_short<<"bytes.\n"
     头文件 climits 定义了符号常量来表示类型的限制。


无符号类型

    直接上代码:

#include<iostream>
#define ZERO 0
#include<climits>

int main()
{
	using namespace std;
	short sam = SHRT_MAX;
	unsigned short sue = sam;
	cout << "short类型sam和unsigned short类型sue当前分别是" << sam << " " << sue << endl;
	cout << "sam加1之后:" << ++sam << endl;
	cout << "sue加1之后:" << ++sue << endl;
	cout << "令sam和sue都等于零" << endl;
	sam = ZERO;
	sue = ZERO;
	cout << "sam减1之后:" << --sam << endl;
	cout << "sue减1之后:" << --sue << endl;
	return 0;
}

     

    该程序将一个 short 变量(sam)和一个 unsigned short 变量(sue)分别设置为最大的short。在我的电脑上是32767。之后将二者均加一,对于 sue 来说新值仍比无符号整型的最大值小的多;但 sam 的值从32767变成了-32768!同样,对于将二者设置为0后,对于 sam 减一之后没有问题,但对于 sue 却变成了65535。可以看出,这些整型变量的行为就像是里程表(个人感觉可以理解为一个圆圈),超过限制后,值将会取另一端的值。关于有符号数与无符号数的详解可以看我博客的这篇文章 http://www.godreams.cn/?post=67 



字面量

    C++能够以三种计数方式显示整数:十进制、八进制,十六进制。如果第一位为1~9,则基数为10。如果第一位是0,第二位为1~7,则是以8为基数。如果前两位为 0x 或 0X 则基数为16。

    对于一段普通的语句:

cout << "Yere = " << 3131 << endl;
     C++是如何存储字面量3131的?答案是,除非有理由存储为其他类型(如使用特殊后缀来表示特定的类型,或者数太大时不能存储为int),否则C++将整形常量存储为int类型。

    接下来来看后缀,后缀是放在数字常量后面的字母,用于表示类型。整数后面的 l 或者 L 后缀表示该整数为long常量,u 或 U 后缀表示 unsigned int 常量,ul (可以采用任何一种顺序,大小写均可)表示 unsigned long 常量。unsigned int 比 long 更适合用来表示16位的地址。


懒了....下面直接标页数

P49 cout.put()

P53 wchar_t char16_t

P55 E表示法显示浮点数

P57 和头文件limits

文章如无特别注明均为原创! 作者: 果果, 转载或复制请以 超链接形式 并注明出处 GODAM|博客|godam
原文地址《 C++ primer plus 笔记》发布于2020-6-2

分享到:
打赏

评论

游客

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

sitemap