算法笔记的笔记

《算法笔记》的笔记

第二章: C/C++快速入门


文章目录

  • 《算法笔记》的笔记
  • 前言
  • 2.1 基本数据类型
  • 总结


前言

在学习之前有一个小插曲,用vi命令打开.c文件的时候总是提示存在交换文件,这让我没有办法修改我的目标文件,经过查询相关资料,我发现只要将对应的交换文件删除就可以了,产生原因可能是因为在退出编辑模式之前退出文件了。
具体的操作方法:使用ls - al 命令查看文件夹目录,找到交换文件(文件后缀是.swp)然后就用 rm - 文件名 删掉相应的交换文件就可以了
PS:我发现当交换文件出现重名的时候,文件的拓展名会到发生变化(.swn 、.swo等)
PPS:很久没有用我的Ubuntu了,很多的命令都忘记了,所以一些常用的命令需要在这里记下来,以便之后学习的时候复习。

vi/vim、cd、ls、mkdir


虽然之前学过C/C++但是担心自己有什么遗漏所以还是看了一遍,在这里主要记录的就是自己原先不是很熟悉的内容。

#第二章

2.1 基本数据类型

  1. cin和cout消耗的时间会比scanf和printf多得多。而且在同一个程序当中不应该同时使用cout和printf(会出现问题)
  2. C++标准库中,stdio.h的推荐写法:cstdio(就是去掉后缀,然后在最前面加上c,eg: —>
  3. 基本数据类型:

    i)整型:int —> 32bit (10^9以内使用)|| long long ----> 64 bit(如果long long型赋大于2^31-1的初值的时候,需要在初值后面加上LL,否则会编译错误)
    ii)浮点型:(Mantissa:小数部分)算法笔记的笔记_第1张图片
    由上图可以知道单精度float有效精度只有6~7位(具体原因之后补充),双精度浮点型double的有效精度为15~16位。书中的建议:(应该是单精度浮点型的精度在大多时候都不够用吧)

对于浮点型来说,只需记住一点,不要使用float,碰到浮点型的数据都应该使用double来存贮。

iii)字符型:字符在C语言中使用使用ASCII码统一编码的。(需要记住一点小写字母比大写字母的ASCII码值大32,0的ASCII码为48) (还要记住几个常用的转义字符:\n代表换行,\0代表空字符,其ASCII码为0,\t代表Tab键) 这一部分总结来说就是%c会将整型数字转化成相应ASCII码所对应的值。 对于字符串型可以转化成字符数组,但是不能赋值给字符变量

3.强制类型转换
格式:(新类型名)变量名

如果在计算过程中需要类型转换,那么就不能等它算完再在赋值的时候转换

4.符号常量和const常量

这是定义常量的两种方式(更加推荐后者)
格式:

#define 标识符 常量//注意这里最后是没有分号的
const 数据类型 变量 = 常量;

宏定义的陷阱:

#include 
#define CAL(x) (x * 2 + 1)
int main(void){
     
	int a = 1;
	printf("%d\n",CAL (a + 1));
	return  0;
}
//输出:4
//因为宏定义只会将数据原封不动地带进去,实际上的运算过程为:a+1*2+1.
//所以在用宏定义的时候应该将变量全部用括号括起来

5.运算符

i)算数运算符没有幂次运算符,^代表的是位异或(位运算符可以用来定义无穷大的数)

//实际上就是整型的上限
const int INF = (1 << 30) -1;
const int INF = 0x3fffffff;

ii)条件运算符
格式:A ? B : C;

//用条件运算符+宏定义判断大小的结构
#define MAX(a, b) ((a) > (b) ? (a) : (b))

总结

1.遇到的问题:想直接赋值字符串而不是字符(Solved)

字符串常量可以作为初值赋给字符型数组,并用%s输出

char strl[25] = "cser";
printf("%s", strl);

2.用VS2019编译sanf无法通过,出现C4996错误。(Solved)

在 Visual Studio 中关闭项目的警告:打开项目的 “属性页” 对话框。 选择 “配置属性” " > c/c + + > 高级" 属性页。编辑 “禁用特定警告” 属性以添加 4996 。 选择 “确定” 以应用所做的更改。

你可能感兴趣的:(算法笔记,c++)