C++ 临时笔记

让程序暂停的简单写法:    cin.get();

cout.put(65);    //输出 A 

头文件 iostream 中提供了控制符 dec 、hex 和 oct,分别指示十进制的、十六进制和八进制格式显示整数。默认为十进制,在修改格式之前,原来的格式将一直有效:

如:cout<<hex<<11<<endl;      //b

表示各种整型的系统限制的climits文件,可以直接输出 INT_MAX、SHRT_MAX、LONG_MAX、INT_MIX 和 CHAR_BIT等来查看一些整型信息。

  

共用体:类似于结构,但不同是只能同时表示一个变量。由于共用体每次只能存储一个值,因此其长度为其最大成员的长度。

union one4all
{
    int i;
    double j;
};

char *c1 = "abc" 和 char c2[]="ABC",前者是字符串字面量,在c++中是常量,不可修改;后者是在栈区, 分配了额外的内存,可修改。"abc"实际表示的是字符串的地址,因此这条语句是将"abc"的地址赋给了c1指针。

//char* 的用法:
char
* c = "df"; cout<<c<<endl; // c是指针,按理来说应该打印指针,但这里却是输出 "df",如果要显示字符串的地址的话,就要用下面的 (int*)c 了 cout<<*c<<endl; // d cout<<*(c+1)<<endl; // f cout<<(int*)c<<endl; // 字符串的地址 cout<<*"df"<<endl; // 字符串字面值表示的是字符串第一个字符的地址,所以这里解引用,会得到 "d" cout<<*("df"+1)<<endl; // f

    

声明整个类的常量,有两种方式:

class User
{
    private:
        enum{Len1 = 30};
        static const int Len2 = 30;
    public:
        void print()
        {
            cout<<User::Len1<<endl;
            cout<<User::Len2<<endl;
        }
};
ostream & operator<<(ostream &os,const User &user)
{
    os<<"username:"<<user.username<<"   password:"<<user.password<<endl;
    return os;
}

int array[3] = {1,2,3};  //这里可以省略数组长度,但不推荐。用于字符串时推荐,如:char fish[] = "Bubbles";    //这里长度不是7,而是8

将数组地址作为参数可以节省复制整个数组所需的时间和内存,如果不需要改变数组请使用 const 关键字避免风险。此外,传递数组时还需要传递数组长度信息。

void fillArray(int array[] , int size);

而不要试图这样:

void fillArray(int array[size]);

还有一种方法,也是传递两个参数,即传递两个指针,一个标识开头,一个标识尾部,如STL的“超尾”概念。(超尾即最后一个元素后一个位置)

将指针参数声明为常量数据的指针。(尽可能使用const)

可以避免由于无意间修改数据而导致的编程错误;

使const使得函数可以处理const和非const实参,否则将只能接受非const数据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 

原文地址:https://www.cnblogs.com/tianyajuanke/p/2473207.html