上海市各区建设局网站,研发项目管理系统,免费域名申请的方法,网站空间在哪里买一.运算符的优先级
一共15个级别
最高优先级 : () []最低优先级 :逗号表达式倒数第二低优先级 : 赋值和符合赋值(,,-...) ! 算术运算符 关系运算符 || 赋值运算符
二.数据类型转换 隐式类型转换 算数转换 char int long longlong flo…一.运算符的优先级
一共15个级别
最高优先级 : () []最低优先级 :逗号表达式倒数第二低优先级 : 赋值和符合赋值(,,-...) ! 算术运算符 关系运算符 || 赋值运算符
二.数据类型转换 隐式类型转换 算数转换 char int long longlong float double尽量不丢失精度,会将计算结果往精度大的类型转换例如 : 15 3.14 15.0 3.14赋值转换 int x 3.14*10.0;转换为int类型时候,因为赋值符号的左边变量为int,则将类型转换为int类型结果为 31输出转换(C语言) printf(%c,25550); 305的二进制数是 0000 0001 0011 0001,由于超过了一个字节所能存储的最大数,,所以会将0000 0001挤到第二个字节里面去,该字节就存放0011 0001,十进制为49,即ASCLL码为49,转换为字符为 1 若按%d 进行输出,则输出为305,因为int占四个字节,足够容纳305的二进制强制类型转换 c语言 (数据类型)数据 (int)3.14c语言 数据类型(数据) int(3.14)x (char)257 100;257为int类型,其二进制为 1 0000 0001,转换成char类型会将保留8位,结果位0000 0001,这样结果在和int类型的100相加,等于 1 100 101高级强制类型转换static_castdynamic_castreinterpert_cast
三.switch和if的选择
switch : 用于 int char long longlong类型的变量,和多个特定常量的判断处理 float和都变了类型不可以if适用于各种逻辑判断switch一定能改为if,if不一定能改为switch
四.const int*p与int* const p 的区别 int i 0;
int t 2;
const int *p i;//可以改变p的指向,但是不能通过*p改变指向变量的值
int* const p1 i;//可以通过*p改变指向变量的值,但是不能在指向其他变量了
//*p 3;//error
//p t;//pass
//*p1 3;//pass
//p1 t;error
常量指针可以指向常量或变量,不能将常量指针赋值给普通指针
五.底层Const和顶层Const的区别
底层const用于修饰指针或引用目标对象表示目标对象是常量不可修改。顶层const用于修饰指针或引用本身表示指针或引用本身是常量无法指向其他对象。 顶层const指针本身是常量
六.不安全函数
scanf_s函数
int x;
scanf_s(%d,x);//不需要使用第三个参数,用法和scanf相同float f;
scanf_s(%f,f);//不需要使用第三个参数,用法和scanf相同char c;
scanf_s(%c,c,sizeof(c));//需要使用第三个参数,否则有警告char name[16];
scnaf_s(%s,name,sizeof(name));//需要使用第三个参数int age;
char name[16];
scanf_s(%d%s,age,name,sizeof(name));
gets函数不能使用 使用gets_s,gets函数是老标准C语言函数,vs使用更安全的C11标准,使用对应的gets_s
char line[32];
gets_s(line,sizeof(line)); 六.cin 返回值
if((cinword) 0){}//在vs里面不能通过编译 解决方法
if(!(cinword)){}//方法1if((bool)(cinword) 0){}//方法2七.getline返回值是cin
返回值是cin
getline(cin, word) count; if(getline(cin,line)0){}//错误,不能通过编译
解决方案和上面cin的解决方法一样,可以强制转换类型或者加上逻辑非
八.计算机英语加油站
bool 布尔 逻辑类型if 如果else 否则switch 开关case 情况default 默认commit 提交clone 克隆 复制
九.goto语句
例子 :
string ret;
for(int i 0;i5;i){cout开始第i1次相亲...endl;cout你喜欢打王者吗?endl;cinret;if(ret ! yes) continue;else{cout我中意你,你中意我吗?endl;cinret;if(ret yes){goto happy;}}
}
happy :cout幸福生活endl;cout开启幸福之旅endl;return 0;
}
goto在应用开发中不建议用,会破坏程序的结构性,一般用在底层开发,追求效率语法 :goto 标志; 标志:goto在应用开发中一般将标志后面的语句封装为函数,进行函数调用 ; 或者用flag进行标记,标记成立执行标志后的代码标签必须和goto 标志;必须放在同一个函数内,不能跨函数,但是可以在同一个函数的任何位置
十.cmd
切换盘 直接 d:或者c:进入某个文件,用cd 例如 cd d:\ceshi,就会进入d盘下的ceshi目录查看编码用chcp(活动码)修改编码用: chcp 编码 ,例如 chcp 936,会改为936编码在一个目录下放两个exe文件,利用破解.exe | 客户.exe,会将前面程序的输出数据,通过管道作为后面文件的输入数据利用dir查看目录下面的文件 十一.VS播放音乐
头文件
#includemmsystem.h
#prama comment(lib,winmm.lib)
加载音乐代码
mciSendString(_T(play 音乐地址 repeat),0,0,0);_T可以用多字符集替代play 播放repeat 重复
十二.宽度与对其
c中的设置文本宽度头文件为#includeiomanip,语句为setw(宽度)设置对其 : 例如左对齐 std::left
十三.原地交换字符串
当left right时,没有必要再交换,也可也用于交换其他数据类型 string str;int left,right;cout输入一个字符串: ;cinstr;left 0;right str.length()-1;while (leftright){char tmp str[left];str[left] str[right];str[right] tmp;left;right--;}coutstrendl;
十四.终端
控制终端大小mode con cols 列数,lines 行数 system(任何终端命令);,再system里面可以写任何终端命令进行执行例如 : system(mode con cols40 lines15);
十五.string转char*类型
函数c_str()函数可以将string类型转换为从const char*类型
using namespace std;
void print(const char * str){coutstr;
}
int main() {string str LiHua;const char* p str.c_str();//const,char*类型print(str);//这样会报错,形参与实参的类型不匹配print(str.c_str());//不会报错,将string 转成const char*
}