C++ primer 学习笔记(4)

来源:互联网 发布:淘宝推广费用预算表格 编辑:程序博客网 时间:2024/05/29 08:52

1、sizeof只是一个运算符,对类型用的时候要加括号,但是对变量用的时候则不用加,所以说他不是一个方法或者函数只是一个运算符。

2、由于不同机器上,不同系统上,每个数据类型的宽度会有不一样,所以,limits.h的头文件中存储了这些信息。可以通过,CHAR_BIT查看char类型的宽度,或者用INT_MAX来查看在这个机器内整型数据的最大值。sizeof这操作符也同时可以对他们来运用查看类型的宽度。

3、可以用int y(32)的方式来赋值给Y

4、无符号的数据类型中,如果取值超过了最大或者最小的限制,那么会在另一端取值。比如min_short=0,如果让它在减去1小一点,那么它就会变成65535,因为无符号的short最小值和最大值分别是0,65535,超过了最小值的限制就成了最大值。有符号的数据类型如果在超出限制的时候,也有可能发生这种情况,但是也有一定的出错几率。


5、C++会将整型常量存储为默认的int类型,如果没有特殊声明的话。

6、由于内存中的地址没有负值而且数值都很大,所以用unsinged int来表示。

7、char是一个特殊的整型,它虽然用来处理字符,但是字符实际上在内存中存的是该字符的字符编码,每个系统中最多又不超过128个字符,所以一个字节表示就够了,则出现了char这个数据类型。

8、值的类型将会引导cout的行为,整型数据和char型数据在这里输出的是不一样的,即使他们在内存中存的是同样的东西。

9、cout.put(),cout是一个对象,put是一个成员函数,“.”是成员运算符。cout这个对象将调用ostream类中的put方法输出一个字符。


10、单个字符'a'实际上表示的是a字符的ASC的值。属于字符常量。


11、在使用转义序列的时候,尽量转义的是字符而不是数字,因为数字可能因为编码的方式不同而又不同的意思,但是字符不会。


12、char 在默认的时候既不表示有符号,也不表示无符号,=如果想确定用有符号和无符号的char型,可以显示的声明signed char or unsigned char


13、const限定符,将一个变量声明为只读,也就是常量,因为常量不能再程序当中更改,为了更加保证常量这一性质,所以用const声明一个变量作为常量也使用更加保险。并且在用const声明的时候,一定要给常量赋值,不然的话这就是错误的,因为只要一声明完成,这个常量的值在任何地方都不能被改变了。


14、浮点数可以用正常的小数来表示,也可以用1.45E3的形式来表示,E3表示10的3次方,类似于科学计数法。E表示法可以在表达式中没有小数的情况下,也把数字按照小数的形式才存储,比如7e5存储的是7.0e5.

15、浮点数E前面的符号用于表示正负数,E后面的符号表示小数点的缩放。


16、浮点数中的有效位是指数字中真正有意义的位,和小数点的位置是没关系的。超过有效位的位数都是不可信的。


17、可以再float.h中找到本地系统的浮点数类型有效位的个数和一些大小的限制。


18、cout只打印小数的后六位。特定的系统会对有效位有限制。


19、默认的情况下,在没有声明一个浮点数的类型的时候,都存为double。


20、取模运算符的两个操作数都是整数才可以。

21、如果优先级相同的两个运算符作用于同一个操作数,那么将根据操作数的结合性进行运算顺序的决定。优先级和结合性都必须是在两个运算符作用于同一个操作数时才适用,否则不会。


22、使用相同的符号做不同的工作就叫做运算符重载。


C++中一些自动类型转换操作:

a、将一种类型的变量,赋值给另外一种类型变量。那么赋值变量将生成一个与被赋值变量相同类型的在数值上等于赋值变量的值,重新赋给被赋值变量。

b、在不同种类变量运算的时候

c、传递参数的时候


尽量不要将精度比较大的类型的数值赋值给精度比较小的,那样的话会损失精度,数值也会不准确。

整数上范围较大的不要赋值给范围较小的,浮点数赋值给整数会丢失小数部分。在浮点数赋值给整数的时候,如果浮点数的值不超过整数的表示范围,那么会截掉小数部分,如果超过了,那么将会赋值一个不确定的值。


在不同的数据类型的数据记性运算的过程中,会把一些数据范围比较小的类型先转化为大一些的然后再进行计算,相同的数据类型的计算,比如,signed int ,int char 等等,在计算之前都会被转化为Int来进行计算,目的只有一个,就是自动转化是为了不要在计算过程中损失数据和精度。


C++中显示的类型转化

int(a)

(int)a

两种方式将a转化为整型数据。

强制类型转换是生成一个新的值,而不是改变之前被转换的值。


23、auto关键字可以将变量初始化值的类型设置成变量的类型

auto n = 2;

(n为int类型)


24、I/o系统决定了编码被解释成数字还是字符



0 0
原创粉丝点击