C++(1) Base List1
C++ 基础知识系列
1.式子:x = x&(x-1) ,<Hacker's Delight>这本书第1章就有介绍,这种算法是把一个二进制数最右边的一个1变成0。
----------------------------------------------
C++基点
1.引用返回值:函数返回值时,要生成一个值的副本。而用引用返回值时,不生成值的副本。
2.联合体和结构体:struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成员, 而struct的所有成员都存在。在struct中,各成员都占有自己的内存空间,它们是同时存在的。一个struct变量的总长度等于所有成员长度之和。在Union中,所有成员不能同时占用它的内存空间,它们不能同时存在。Union变量的长度等于最长的成员的长度。
---------------------------------------------
string(字符串)
转字符:
char str[50] = {0};//初始化为0 sprintf(str,"gross%d.png",i+1);
//str为字符长,例:str = "gross1.png"
string 类型转化为 char*
string str("hello world"); char gs[20]; strcpy(gs, str.c_str()); cout<<gs<<endl; cout<<str.c_str()<<endl; //string 中方法 c_str()返回const char *字符串
%s, (char*)s
当我们定义了一个string类型之后,用printf("%s",s1);输出是会出问题的。这是因为“%s”要求后面的对象的首地址。但是string不是这样的一个类型。
===================================
char
在C/C++ 里面 char 为一个字节 汉字为两个字节 所以是存储不了的 但是在C#(java)里面 char为两个字节 因为C#char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中可以存储汉字。
===================================
window doc窗口 字体颜色编程更改
#include"windows.h" using namespace std; void main() { cout<<"原色testCOLOR(没有设置字体颜色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED| FOREGROUND_GREEN|FOREGROUND_BLUE);//设置三色相加 cout<<"白色testCOLOR(红色绿色蓝色相加)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); //设置红色 cout<<"红色testCOLOR(设置的颜色为红色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN) ;//设置绿色 cout<<"绿色testCOLOR(设置的颜色为绿色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); //设置蓝色 cout<<"蓝色testCOLOR(设置的颜色为蓝色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED| FOREGROUND_GREEN);//设置红色和绿色相加 cout<<"黄色testCOLOR(红色和绿色相加色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED| FOREGROUND_BLUE);//设置红色和蓝色相加 cout<<"粉色testCOLOR(红色和蓝色相加色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN| FOREGROUND_BLUE);//设置绿色和蓝色相加 cout<<"青色testCOLOR(绿色和蓝色相加色)"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY); //设置颜色,没有添加颜色,故为原色 cout<<endl; }
模板:
模板 声明和定义续写在同一文件下(.h)
数组
数组申请的时候就固定了长度,如需改变长度,需重新申请
浙公网安备 33010602011771号