C++学习第一篇(数据类型和运算符)

笔者大一大二学过C/C++,后来转Java,C++的的东西基本忘完了(本来就学的不多而且不深入),现在工作需要,重温C++,由于有Java和计算机基础,学起来应该还算比较顺利,但还是碰到一些值得记录的东西,所以开个专栏记录一下C++的学习过程。使用开发软件为Virsual Studio 2019。
1,bool值只有0代表,哪怕是负数也是true,但是true只会打印1,,哪怕赋值100也会打印1,false只会打印0,想要打印成"true"或者"false"需要如下操作:
bool flag = 1;
cout<<boolalpha<<flag<<endl; //打印true
cout<<noalpha<<flag<<endl; //打印1
2,注释代码快捷键:ctrl + k后接ctrl + c
取消注释代码快捷键:ctrl + k后接ctrl + u
3,整型 short、int、long、long long分别占用2、4、4、8个字节,其中long在64位系统下占用8个字节
浮点型 float、double占用4、8个字节,精度为7、15-16位有效数字(整数部分和小数部分都计入有效数字,比如3占用一位有效数字,3.14占用三位有效数字),但默认都只会显示6位小数,
在C++中char类型只会占用一个字节,Java中char类型占两个字节;
另外跟Java一样,对于字面量会有一个默认的类型,比如3默认为int类型,3.14就默认为double类型,要想转为想要的类型,就可以在字面量后面加上一个字母,如3L,数值就被转为long类型,3.14f,就被转换为float类型。
4,sizeof(),参数可以是类型如sizeof(int)或者变量如sizeof(a),计算参数占用多少个字节
5,一些运算符习惯问题:要加括号,其本质是">>" 与 “<<“也是运算符,其优先级比”==”,"<"等要高

int a = 10;
int b = 20;
cout<< a<b ; //报错报错,会先执行1,cout<<a ;再拿1的结果与b比较谁大谁小,但1的结果不是数值,不能与b(int型比较)
cout<< a == b << endl;//报错,会先执行1,cout<<a ;2,b<<endl; 最后再拿1,2的结果执行 ==
cout<< (a<b) <<endl; //true
cout<< (a == b) <<endl; //false

6,对于逻辑运算符,取反操作"!“,逻辑与”&“,逻辑或”|",会将操作数当成bool类型进行处理,整数0为false,非0为true

int a = 10,
int b = 0,
bool flag = true;
cout<< !a << endl; //0
cout<< !flag << endl; //0
cout<< !b << endl; //1
cout<< a&b << endl; //报错,要加括号
cout<< (a&b) << endl; //0
cout<< (a|b) < endl; //10

7,system(“pause”)用来暂停控制台,按任意键后继续,如果有些程序一闪而过,可以用此语句暂停。
system(“cls”); 控制台任意键清屏

8,C++字符串的拼接可能会导致一些问题,例如如下代码:

int i = 10;
cout<< "数量为" + i<<endl;

在Java中字符串的拼接规则是能算则算,不能算则拼接为字符串,在C++中以上代码输出语句可能不执行,只会执行最后的换行

9,实现随机数(伪随机):

int i = rand()%100;//随机数范围是0-99
int j = rand()%100+1; //随机数范围是1-100

程序多次运行,会发现每次i、j的值都是固定的,并没有真正实现随机,可以加个随机种子,以时间戳为种子:

srand((unsigned int)time(NULL);
int i = rand()%100; //此后每次执行,i的值会发生变化

10,\t水平制表符,就相当于Tap键,其作用是补齐前面字符个数到8的整数位,比如:

cout<<"abc\x"<<endl;   //abc与x之间应该有5个空格 abc三个 8-3
cout<<"ab\tx"<<endl;     //ab与x之间应该有6个空格 ab两个 8-2
cout<<"abcdefgh\tx"<<endl; //abcdefgh与x之间应该有8个空格 abcdefgh八个 16-8
cout<<"abcdefghij\tx"<<endl; //abcdefghij与x之间应该有6个空格 abcdefghij十个16-10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值