C++数据存储、表示形式和基本运算

112 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

目录

前情提要

字符常量

普通字符

转义字符

存储方式

字符串常量

符号常量

常变量

强制类型转换运算符

赋值过程类型转换


前情提要

由于又开始学编程语言,就一些关于C++的比较常用的知识点记录下,用来回忆C/C++的编程规则。

字符常量

普通字符

字符常量只包括一个字符,如'a'这样的是字符常量,'AB'这样就不是字符常量。

字符常量区分大小写,'a'与'A'是两个字符。

转义字符

以''开头的特殊字符。例如'\n',转移字符通常包含两个及以上的字符,但它只代表一个字符,在内存中只占1个字节。

如果要让'\n'输出了话,需要在转移字符前加""

cout<<"\n"<<endl;

输出:\n

存储方式

字符常量存放在内存单元时,是将该字符对应的ASCII码放到存储单元。例如存放'a'的存储单元,里面存储的是对应的ASCII码值97。

字符串常量

字符串常量“abc”在内存中占4个字节(而不是3个字节),原因是编译系统会在字符串最后自动加上一个'\0'作为字符串结束标志,存储内容就变成了

abc\0

cout<<"abc"<<endl;

输出:abc

而不是abc\0。

字符常量'a'会比字符串常量“a”少一个字节,前者有1个字节,后者2个字节。

字符串常量"abc\n",占4个字符,占5个字节。

符号常量

#define PRICE 30

预定义一个字符串"PRICE"的值为30,将define范围内的所有PRICE全部替换成30,并且后期无法对PRICE进行再次赋值。

常变量

const

这个跟C语言又不一样了。

在定义变量时,如果加上关键字const,则变量的值在后期不能改变(再次赋值),这种变量称为常变量。

const int a=3

也可以用表达式

const int a=3+6;

没有内存有内存空间
可以用sizeof测出其长度
没有类型有类型

两者实现方法不同,但使用效果相同,可以认为一个标识符代表一个常量。

强制类型转换运算符

c语言中有

(类型名)(表达式)

(类型名)变量

例如:(int)(x+y);

           (int)x;

c++语言继承了c语言的强制类型转换,再额外增加了一种:

类型名(表达式)

类型名(变量)

例如:int(x+y);

           int(x);

赋值过程类型转换

需要注意的是将一个int,short或long型变量,只将其低8位原封不动地送到char型变量。

例如:

short int i=289;

char c;

c=i;

赋值情况:

i=289      0000 0001          {0010 0001}

                                 c=33   0010 0001       传递低8位给c