第二章(C++)~变量和基本类型

2019-09-25  本文已影响0人  掌灬纹

学习并掌握一门编程语言,理解语法特征的实现细节是第一步

2.1 基本内置类型

c++的常用算术类型:intshortlonglong long
上边提到的都是带符号类型 还可以声明为无符号类型unsigned int/short/long
字符类型char是一种特殊的类型 会在编译时解释成 带符号字符或不带符号字符两者之一
如何选择类型呢?

建议

2.1.2练习

#include<iostream>
// 在运行前给出下列计算的结果 
int main(){
    unsigned u = 10, u2 = 42; // unsigned int
    std::cout << u2 - u << std::endl; // print 32 yes
    std::cout << u - u2 << std::endl; // int max value - 32 "4294967264" yes
    
    int i = 10, i2 = 42;
    std::cout << i2 - i << std::endl; // 32 yes
    std::cout << i - i2 << std::endl; // -32 yes
    std::cout << i - u << std::endl; // 0 yes
    std::cout << u - i << std::endl; // 0 yes
    return 0;
}

请记住:
1.不要混用带符号类型和不带符号类型做运算(不带符号类型在做运算时会自动转为带符号数)对int最大值取模 从而得到非所想的结果
2.当运算无符号数时永远不要运算结果为负数

字面值常量
1.整数的字面值常量可写作十进制,八进制,十六进制
以0开头的书写表示八进制,以0x开头的书写表示十六进制
如 整数20 可表示为 0240x14
2.字符串字面值
双引号包含在内的为字符串字面值,并且编辑器会自动在末尾补上空字符 '\0'
Tips(代码优化):
当打印字符串面值较长时,可换行书写如:

std::cout << "Hello my name is .......,"
                     "This are two lines ......." << std::endl;

3.转译序列
所有的转译字符均以反斜线开始 如\n --> 换行符 \t --> 制表符 \r --> 回车符
空指针的字面值 nullptr

2.1.3练习

/*
练习 2.8 
用转译字符写一段程序 先输出 2M,跳转到新一行
先输出2 然后输出制表符 在输出 M(八进制\115 或十六进制\x4d) 跳转到新一行 
*/
#include<iostream>
int main(){
    std::cout << "2\115\n";
    std::cout << "2\t\115\n" << std::endl; 
    return 0;
}

2.2变量

最常见的变量声明及初始化语句:int val = 0;
要注意的:
1.变量的初始化和赋值两者完全不同,初始化时创建变量时赋予一个初始值而赋值的含义时用一个新的值代替原来的值
2.未初始化的变量使用可能造成不可预知的错误,因此无论内置类型或自定义类型的变量都最好显示的初始化(编程素养)

变量的声明:extern关键字的使用

c++的分离式编译:在多个文件中使用一个变量 则在一个文件中定义 其他使用的文件中声明
注意:
1.变量的定义只能一次,声明可以多次
2.声明变量不要赋初值 否则 声明将成为定义变量

名字作用域:

全局作用域和局部作用域(与大多数语言一样)

建议:在第一次使用变量时在定义它。

2.2练习

~理解作用域的覆盖规则

 // p45 程序中变量j的值
 #include<iostream>
 int i = 42;
 int main(){
    int i = 100;
    int j = i;
    std::cout << j << std::endl;// j = 100
    
 } 
// p45 2.14 看程序 写输出
#include<iostream>
int i = 100, sum = 0;
int main(){
    for(int i = 0; i != 10; i++){
        sum += i;
    }
    std::cout << sum << std::endl;// sum = 45(1+2+3+..)
}  

后续~~~~~~~~~复合类型(引用与指针),自定义数据结构,头文件

上一篇下一篇

猜你喜欢

热点阅读