持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
目录
前情提要
由于又开始学编程语言,就一些关于C++的比较常用的知识点记录下,用来回忆C/C++的编程规则。
字符常量
普通字符
字符常量只包括一个字符,如'a'这样的是字符常量,'AB'这样就不是字符常量。
字符常量区分大小写,'a'与'A'是两个字符。
转义字符
以''开头的特殊字符。例如'\n',转移字符通常包含两个及以上的字符,但它只代表一个字符,在内存中只占1个字节。
如果要让'\n'输出了话,需要在转移字符前加""
cout<<"\n"<<endl;
输出:\n
存储方式
字符常量存放在内存单元时,是将该字符对应的ASCII码放到存储单元。例如存放'a'的存储单元,里面存储的是对应的ASCII码值97。
字符串常量
字符串常量“abc”在内存中占4个字节(而不是3个字节),原因是编译系统会在字符串最后自动加上一个'\0'作为字符串结束标志,存储内容就变成了
| a | b | c | \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