C++的一些细节

    技术2022-05-20  59

    1.C++中,将负数赋值给unsigned是完全合法的。例如,将-1赋值给unsigned char,那么结果是255.

    2.C++中,double的精度和计算速度都要超过float,long double则需要承担额外的运行代价。

    3.std:ou/

       t<<"Hi"<<st/

       d:endl

    等价于std:out<<"Hi"<<std:endl

    4.C++中,定义和声明一般都是同时进行的,只有一种情况,extern,extern声明不是定义,也不分配内存,它只是说明变量声明在什么地方,程序中变量可以声明多次,却只能定义一次

    5.在函数中定义一个与全局变量重名的变量会屏蔽掉原来的全局变量

    #include<iostream> #include<string> using namespace std; string s1="Hello"; int main() { int s1=42; cout<<s1<<endl; //输出42 return 0; }

     

    6.非const变量默认为extern,要是const变量能够在其他文件中访问,需要显示的指定为extern

     

     

     

    7.当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象,不可能将引用绑定到另一个对象

     

     

     

    8.struct和class在C++里都可以原来定义类,不同的是,默认情况下,struct的成员是public,class的成员是private

     

     

    9.getline(cin,string line)不忽略行开头的换行符,只要getline遇到换行符,getline就将停止读入,getline将istream作为返回值。

     

     

    10.string.size()的返回值不上整型,而是配套类型string::size_type,vector等也与之类似。

     

    11.0值指针的删除是合法的,尽管没有任何的意义

    int *ip=0; delete ip;


    最新回复(0)