范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Cpp知识点系列类型转换

  前言
  在做题的时候发现了需要用到类型转换,于是在这里进行了简单的记录。
  历史原因,慢慢整理着发现类型转换也能写老大一篇文章了。又花了时间来梳理一下就成了本文了。
  之前使用的环境是DEV-C++ 5.4  ,而对应的GCC版本太低了。支持c++11需要GCC版本至少达到4.8.1才可以!
  1数据类型和运算符四种基本数据类型
  基本数据类型是分为四种的,分别是整型,浮点型,字符型和布尔型。
  四种基本类型
  image-20201113122319295
  从表2-1中可以看到,C++的基本数据类型有bool(布尔型)、char(字符型)、 int(整型),float(浮点型,表示实数) , double(双精度浮点型,简称双精度型)。除了bool型外,主要有两大类:整数和浮点数。
  因为char型从本质上说也是整数类型,它是长度为1个字节的整数,通常用来存放字符的ASCII码。
  其中关键字signed和 unsigned,以及关键字short 和long被称为修饰符。
  细节ISOC++标准并没有明确规定每种数据类型的字节数和取值范围,它只是规定它们之间的字节数大小顺序满足:(signed/unsigned)char ≤ (unsigned)short ≤ (unsigned)int ≤ (unsigned) long
  不同的编译器对此会有不同的实现。
  面向32位处理器(IA-32)的C++编译器,通常将int  和long  两种数据类型皆用4个字节表示。
  但一些面向64位处理器(IA-64或x86-64)的C++编译器中, int  也是用4个字节表示, 但是long   用8个字节表示。结构体类型struct A {  char c1;  short s1; };
  这里不是主要说这个应用,而是分配字节的大小问题。
  基础数据类型的字节长度很明显:
  类型长度(字节) char1 short2 int4 long4 float4 double8 long long8
  然而,结构体的计算方式不是类似数组类型那样简单的累计,而是需要考虑到系统在存储结构体变量时的地址对齐问题
  偏移量概念:偏移量指的是结构体变量中成员的地址和结构体变量地址的差。
  在实际中,存储变量时地址要求对齐,编译器在编译程序时会遵循两条原则:
  (1)结构体变量中某成员的偏移量必须是该成员字长大小的整数倍(0被认为是任何数的整数倍)
  (2)结构体大小必须是所有成员大小的公倍数。(按顺序以已经存在的最大字长为单位)
  结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。
  故而有以下几个例子:struct A {  char c1;//偏移量0 字长1  char c2;//0+1=1 1  double d1;//(1+1=2)+6=8 8  //8+8=16是1,8的公倍数 }; struct B {  char c1;//0 1  double d1;//1+7=8 8  char c2;//8+8=16  1  //16+1=17不是1,8的公倍数,要扩到24才是 }; struct C {  char c1;//0 1  float f1;//1+3 4  char c2;//8 1  //8+1=9不是1,4的公倍数,扩到12才是 }; 枚举类型
  其实枚举类型的应用是很简单的,不过我个人应用的话更倾向于使用map类。
  类似结构体的语法。enum 枚举类型名 {变量值列表};
  附上例子。#include  using namespace std; enum GameResult {     WIN,LOSE,TIE,CANCEL }; //下标依次为0,1,2,3 int main() {     GameResult result;//声明变量时,可以不写关键字enum     enum GameResult omit = CANCEL;//也可以在类型名前写enum     for (int count = WIN; count <= CANCEL; count++) {//枚举类型隐含类型转换为整型         result = GameResult(count);//整型显式类型转换为枚举类型         if (result == omit)             cout << "The game was cancelled" << endl;         else {             cout << "The game was played ";             if (result == WIN)                 cout << "and we won ! ";             if (result == LOSE)                 cout << "and we lost . ";             cout << endl;         }     }     return 0; }
  注意:
  WIN  等是常量,不能对它们赋值。作用范围(严格来说是 main() 函数内部)内不能再定义与它们名字相同的变量。
  枚举和宏其实非常类似:宏在预处理阶段将名字替换成对应的值(cpp->.i  ),枚举在编译阶段将名字替换成对应的值(.i->.s  )。所以不能对枚举类型使用指针!
  可以再复习一下CPP编译运行的过程就更容易理解了。ASCII表
  建议直接访问在线网页:https://zh.cppreference.com/w/cpp/language/ascii
  有以下四个需要注意:空格 32 ‘0’ 48 ‘A’ 65 ‘a’ 97 image-20201113125805916关系运算符
  image-20201113140859803逻辑运算符
  操作数在计算之前隐式转换为类型 bool,结果的类型为 bool。非!
  使用方式为从右向左
  如果已转换的操作数是 false,则结果是 true;
  如果已转换的操作数是 true,则结果是 false。与&&
  使用方式为从左至右。
  如果所有的操作数都为 true,则逻辑"与"运算符 (&&) 返回布尔值 true,否则返回 false。
  第一个操作数将完全计算,并且完成所有副作用,之后才会继续计算下一个逻辑"与"表达式。
  如果第一个操作数的计算结果为 true(非零),才计算第二个操作数。或||
  使用方式为从左至右。
  如果任一操作数为 true,则逻辑"或"运算符 (||) 返回布尔值 true;否则返回 false。
  第一个操作数将完全计算,并且完成所有副作用,之后才会继续计算下一个逻辑"或"表达式。
  仅当第一个操作数的计算结果为 false (0) 时,才计算第二个操作数。算术运算符加减乘除当两个数都是整数时,运算结果也是整数。 当有一个数是小数时,运算结果是小数。 对于除法,如果两个整数相除但又不能整除,则只保留整数部分,这跟将小数赋值给整数类型是一个道理。 取余
  "%"  是取余运算,只能用于整型操作数,表达式a%b  的结果是a被b除的余数。"%"的优先级与"/"相同。逗号运算符
  在C++中,逗号也是一个运算符,它的使用形式为:表达式1,表达式2 求解顺序为先求解i,再求解⒉,最终结果为表达式2的值。int x=0; int y=(x=x+3,4,545); cout<

如果不支持c++11的话,可以参考博客。

#include #include int a = 10; stringstream ss; ss.str("");//重复调用一个对象的话要清空,clear函数只是重置状态。 ss << a; string str = ss.str(); int和bool
  int和bool类型之间存在隐式转换.
  注意,直接输出bool类型的时候,控制台上结果为1或0
  需要加上一个标志符来输出true  或者false  。void bool_to_int() {     bool a = true, b = false;     cout << "a=" << a << " , b=" << b << endl;     cout << "a=" << boolalpha << a << " , b=" << b << endl; }
  image-20220828230919429string、char *、char[]string转char*
  主要有三种方法可以将string  转换为const char*  类型,分别是:data()、c_str()、copy()。data()方法 void stringt_to_char_data() {     string str = "hello";     const char *p1 = str.data();//不可修改     cout << p1 << endl;     char *p2 = (char *) str.data();//可修改     p2[1]++;     cout << p2; } c_str()方法 void stringt_to_char_c_str() {     string str="world";     const char *p1 = str.c_str();//不可修改     cout << p1 << endl;     char * p2=(char*)str.c_str();//可修改     p2[1]++;     cout << p2; } copy()方法可能会报安全性错误,自行解决即可。注意手动加结束符!!! void stringt_to_char_copy() {     string str = "hmmm";     char p[10];     str.copy(p, 3, 0);//这里3代表复制几个字符,0代表复制的位置,     p[3] = "";//注意手动加结束符!!!     cout << p; } char * 转string
  可以直接赋值。string s; char *p = "helloworld"; s = p; string转char[]
  for循环遍历输入。string pp = "helloworld"; char p[20]; int i; for( i=0;i
78岁李谷一,曾罕见晒与老公合照,两人相伴36年,女儿端庄漂亮难忘今宵,难忘今宵,无论天涯与海角,神州万里同怀抱,共祝愿祖国好,祖国好如今的我们提到李谷一,或许脑中就会浮现出一年一度的春节联欢晚会,李谷一穿着端庄的礼服,在众多表演者的簇拥下缓良心被狗吃了!大头娃娃再现,父母该如何选购奶粉?看着孩子受罪的消息,我就气不打一处来。上段时间,湖南郴州永兴县多位家长发现自己孩子身体出现湿疹,体重严重下降,头骨畸形酷似大头娃娃。医生检查发现,这些孩子普遍存在维生素D缺乏,发育如果孩子好动爱疯跑,同时伴有这些表现,家长则不用发愁在诸多儿童感统失调行为表现中,有一项行为十分常见,几乎每个孩子身上都会有,可也正是因为普遍存在,所以很容易被家长忽视,那就是好动爱疯跑。尤其对于小年龄段的孩子来说,活泼好动是天性,51岁的杨钰莹,豪宅种蔬菜,精致如少女,生活太自在杨钰莹是八零后七零后耳熟能详的甜歌皇后了吧?就算是现在,她也依然是天后级别的人物。过去的歌坛,各种风格百家争鸣,有摇滚有豪迈有言情,但杨钰莹走的路线并不是其中一种,她是靠着清新的外唐嫣,要么离婚,要么退圈娱评大赏大家有没有发现,近期85花好活跃啊。前几天才捆绑上了热搜,85花热门女演员梯队图引起众多讨论。这个话题出来,多少有点比较的意思。而当85花被比较,最着急的就是粉丝了吧。赵丽街机厅诞生的各种奇葩绰号,喊了三十年你叫我怎么改得过来当年我们接触的游戏基本上都是美版和日版,因此百分之九十九的游戏都只能使用山寨称呼。那时候的老板对游戏名字也是一知半解,毕竟国内并没有统一的翻译。销售主板的批发商为了方便,使用的就是索尼将在黑五期间开启PlayStationPlus订阅75折优惠IT之家11月16日消息,消息称,索尼PlayStationPlus会员订阅服务将在11月18日至28日(黑五为25日)期间,进行降价25的促销活动(相当于七五折)。这也是索尼新P王者荣耀机甲风强势来袭,总有一款是你的菜王者荣耀出过不少系列皮肤,但是要是问小编更倾向于哪一个系列,那么炫酷霸气的机甲风必须榜上有名!科技感满满的技能特效搭配上机甲造型的设计,帅气扑面而来!那么,在这么多机甲皮肤中,哪一GTA伦敦1969秘籍秘籍作用HAROLDHAND超级秘籍效果MCVICAR99生命SIDEBURN5xMultiplierBIGBEN9,999,990点数OLDBILL最大通缉等级GRASS没有警察这款恐怖游戏因美术素材太像宜家,而收到律师函警告居然敢挑战我大宜家,等待你的只能是加班无辜笑来源综合游戏新知码农游戏研究社等消息编辑布鲁斯近日,一款正在开发中的恐怖游戏TheStoreisClosed(意为商店关门了)收到了来自保卫冠军王座!蛋仔派对保卫萝卜联动欢乐上线决战派对之巅,保卫冠军王座!近日,潮玩休闲竞技手游蛋仔派对重磅官宣,与国民休闲塔防手游保卫萝卜达成联动合作。呆萌清新的男主角阿波携剧组成员,即将于11月18日正式登岛拍摄,冠军王座
Java并发编程的艺术锁核心类AQS详解带着BAT大厂的面试问题去理解请带着这些问题继续后文,会很大程度上帮助你更好地理解相关知识点。什么是AQS?为什么它是核心?AQS的核心思想是什么?它是怎么实现的?底层数据结构等A东方甄选67的用户使用6000元以上的苹果或华为手机说明了什么?不知道大家是否注意到一个不太正常的现象,那就是在最近的玉米纷争之中,有一个群体严重缺席了,那就是东方甄选玉米的消费者。正如很多网友调侃的那样,买玉米的没急眼,结果生产玉米的销售商和iOS16。1口碑真好!苹果为讨喜老机型用户,带来正优化,续航太顶苹果在本周早些时间发布了iOS16。1系统,虽然这次是beta3测试版,但从各机型升级后的表现来看,确实体验还不错,尤其是一些老机型升级后,带来正优化,体验大幅超预期了,今天给大家国家税务总局详解居民换购住房退个税怎么退?退多少?网站截图为支持个人换购住房需求,根据财政部税务总局关于支持居民换购住房有关个人所得税政策的公告(2022年第30号),税务总局发布了国家税务总局关于支持居民换购住房个人所得税政策有欧盟将统一便携智能设备充电接口欧洲议会10月4日通过一项新规,要求从2024年底开始,所有手机平板电脑等便携智能设备新机都使用USBTypeC的充电接口。欧洲议会当天以602票赞成13票反对的投票结果通过有关统欧盟议会通过一项新法律,2024年起所有智能手机将使用统一充电线此举将推动苹果在欧盟销售的手机更换其Lighting接口,预计这一变化将波及全球。欧盟议会通过了一项新法律,要求从2024年底起,USBC成为所有新智能手机平板电脑和相机的单一充电AI开始作画,人工智能创造艺术,人类还是不可取代吗?从AlphaGo击败顶尖国棋选手开始,越来越多人意识到在很多领域,Al已经能够用接近人类的思维,更高效地完成任务。然而长久以来,很多人依然认为,在一些体现人类独创性思维的领域仍是A乐视超级电视F50Pro智能电视,在商标拍卖后依旧在京东售卖乐视看似颠覆性的氛围并没有阻止该品牌发布超级电视F50Pro。新产品是在908个LeTV商标拍卖和公司搬出其大楼之后推出的。乐视超级电视F50Pro配备50英寸全面屏,3840x2扫拖一体,更加接近全自动云鲸智能拖扫一体机J3评测打扫机器人是卷的最厉害的智能家居产品之一。经过多年的发展,打扫机器人的基本功能已经相对成熟,而新的功能不断出现,目前影响比较大的两个功能就是自动集尘和自动洗拖布,也是目前各品牌旗舰新一代助力电动车索罗门S2,搭载7级变速,续航450km,不要驾驶证阅读本文前,请您先点击上面的关注,这样您就可以免费收到我们的最新内容,感谢支持近两年,电动车的发展历经着不断的技术更迭与审美变化,从最早的草根代步车到如今时尚潮流的大玩物,电动车承中国空间站等你来出差!聊聊返回地球初感受为满足载人航天工程后续飞行任务需要,我国第四批预备航天员选拔工作已于近期启动。中国空间站等你来出差,你心动了吗?中国航天员出差时住的太空豪宅里面什么样?出差结束返回地球,身体状态会