让程序暂停的简单写法: 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数据。