大二寒假读书笔记150124

来源:互联网 发布:手机清除数据后果严重 编辑:程序博客网 时间:2024/04/25 02:30

昨天网络太差,百度首页都登不上。也趁机休息了一天,今天继续

正文:

1、C++中,把负数赋给unsigned对象是完全合法的,unsigned对象取得的值是该负数对该unsigned对象类型的取值个数求模后的值

如:把-1赋给8位的unsigned char,结果是255.

2、为了兼容C语言,C++中所有字符串字面值都由编译器自动在末尾添加一个空字符。

‘A’//表示单个字符A"A"//表示字符串,包含字符A和空字符

3、字符串字面值的连接

两个相邻的仅有空格、制表符或换行符分开的字符串字面值(或宽字符串字面值),可连接成一个新字符串字面值

std::cout<<"a multi-line"                   "string literal"                    "using concatenation"              <<std::endl;
执行这条语句输出:

a multi-line string literal using concatenation
但是如果连接的是字符串字面值和宽字符串字面值,将会出现错误结果

std::cout<<"multi-line"L"literal"<<std::endl;//字符串前面加L表示的是宽字符串类型

其结果是未定义的,可能会产生严重错误

4、建议:不可依赖未定义行为

程序不可依赖机器相关行为,比如假定int的位数是个固定且已知的值。我们称这样的程序是不可移植的(nonportable)。

当程序移植到另一台机器上时,要寻找并更改任何依赖机器相关操作的代码,很不愉快!

5、C++是一门静态类型语言,编译时会做类型检查,如果某种类型不支持某种操作,那么这种操作就不合法,编译器就会提示错误

所以在使用变量钱必须先定义变量

6、左值:可以出现在赋值语句的左边或者右边

右值:只能出现在赋值的右边

7、关于对象

每个程序员都渴望有个对象,,,一般而言,对象是内存中具有类型的区域。说的具体一些,计算左值表达式就会产生对象。

我们可以使用对象描述程序中可操作的大部分数据,而不管这些数据是内置类型还是类类型,是有名字还是没名字,是可读的还是可写的

8、请牢记:初始化跟赋值是不同的,理解这个十分必要。直接初始化语法更灵活且效率更高。

初始化指创建变量并给它赋初始值,赋值是擦出对象的当前值并用新值去代替。

C++支持两种初始化变量的形式:复制初始化(用等号)和直接初始化(用括号)

int val (1024);//直接初始化int val = 1024;//复制初始化

0 0
原创粉丝点击