程序设计与算法小记

1.1 信息在计算机中的表示

二进制一位称为比特,bit,简写b。
8个二进制位成为字节,Byte,简写B。
1024B=1KB 1024KB=1MB 1024MB=1GB

256个二进制位就可以表示所有的英文字母,数字,标点符号等等了。这就是ASCII编码方案。

k进制数到10进制的转换,用乘法
10进制数到k进制数的转换,用短除法,首先得到a0,然后一直除以。

4个二进制位正好等于1个十六进制位

1.2 c++快速入门

%d表示等待输入一个整数,&a表示放在变量a里面。
%c表示输入字符,空格不会被跳过。

1.3 变量和数据类型初探

变量代表了系统分配的内存空间,访问变量就是访问那片内存空间。
变量有名字和类型
不同的变量类型占用的内存空间大小不同

c++基本数据类型
int long long double char bool
其中char为一个字节,字符型表示字符

sizeof可以知道某个变量或者类型的字节数

1.4 变量和数据类型进阶

有符号整型和无符号整型
字符和整型可以互相转换,注意字符型只有一个字节

1.5 常量

字符型常量 \n表示换行
\表示\ ‘表示’ “表示”
最简单的 #define 常量名 常量值

2.1 输入输出进阶

输出时,%nd,%0nd的含义,一个是补空格,一个是补零

scanf输入时有非控制字符,这些字符会被跳过,非控制字符就是前面没有%的,
cin输入的时候%c也是会读入空格

用cin读入所有输入的字符,包括空格,回车 c = cin.get(),这个函数返回的是整数,所以c是int,(char),

int c;
while((c = cin.get() != EOF) {
}

或者用scanf读入所有的字符,包括空格和回车

char c;
while (scanf("%c", &c) != EOF) {
    printf("%c", c);
}

程序里面不要同时cin和scanf,不要同时cout和printf

2.2 算数运算符和算术表达式

表达式x=y的值就是y的值

2.3 关系运算符和逻辑表达式

关系运算返回true或者false
逻辑表达式是计算短路的,&&和||,分别是哪种情况,可能右边的不被计算

2.4 其它运算符及运算表达式

部分运算符的优先级

3.1 if语句

3.2 switch语句

3.3 for循环之一

for循环里面表达式1和3都是可以用逗号连接的若干个表达式

3.4 for循环之二

for循环里面的表达式1表达式2表达式3都可以不写但是;要保留下来

3.5 while循环和do while循环

4.2 OJ输入数据的处理

scanf表达式的值为成功读入变量的个数
scanf值为EOF表示输入数据已经结束

6.2 函数2

int double做形参,改变时不改变实参
一维数组做函数参数时,形参改变,实参也改变,数组是传引用的
二维数组作为函数参数的时候,必须要写数组有多少列

6.3 递归初步

一个函数自己调用自己就是递归
递归需要终止条件

6.4 库函数与头文件

isdigit isalpha tolower toupper islower isupper
判断是不是数字字符
判断是不是字母字符
变小写
如果是字母字符变大写
是不是小写字母
是不是大写字母
后面都是圆括号

7.2 字符串2

读入一行到字符数组
cin.getline(数组的名字,长度)
行末的回车换行会被从输入流中被去掉
读入的长度不能超过太多,这样子的话多余的会被去掉

8.1 指针的基本用法和概念

8.2 指针的意义和互相赋值

指针的作用,为什么要用指针;
有了指针,就有了自由访问内存空间的手段;
不需要通过变量,就能对内存直接进行操作。通过指针,程序能访问的内存区域就不仅限于变量所占的数据区域。

指针的互相赋值
不同类型的指针,不经过强制类型转换,不能直接互相赋值

8.3 指针的运算

1.两个同类型的指针可以比较大小,就是比较里面地址的大小
2.两个同类型的指针可以相减,就是这两个地址之间可以放多少个这种变量
int* p1, *p2;
p1 - p2 = (地址1 - 地址2) / sizeof(int)
3.指针变量加减一个一个整数的结果是指针。
4.指针变量可以自增自减。其实就是指向下一个前一个变量
5.指针可以用下标[ ]进行运算。p[n]的含义。

如何访问int前面的一个字节,
先类型转化为char的指针就可以了。

8.4 指针作为函数的参数

空指针,NULL或者0,地址零不能访问,

8.5 指针和数组

数组的名字是指针常量,指向数组的开始。不能变
int a[],a的类型是int指针型的,不能把它写在等号的左边,但是可以写在右边,去给别的int型指针赋值。
做函数参数的时候,指针与数组的写法是等价的。

9.2 指针和字符串

字符串常量的类型就是char*
字符数组名的类型也是char*

10.1 结构

结构里面可以有指向结构的指针变量,
访问结构里面的元素,可以用指向这个结构的指针来完成。

10.2 局部变量,全局变量,静态变量

全局变量都是静态变量,局部变量+static就是静态变量
静态变量的存放地址,在整个函数的运行期间是固定不变的,
非静态变量,一定是局部变量,地址每次函数调用事都可能不同,但是一次执行过程当中是不变的,

静态变量只初始化一次,下一次执行的时候,初始化的语句就不执行了,

1.1 引用

引用完之后两者就是一回事了
定义引用时一定要将其初始化成引用某个变量,
初始化后,它就一直引用这个变量,不会引用别的变量了
引用只能引用变量,不能引用常量和表达式。

引用也可以一直用,让好几个变量变成一回事,改变其中一个,那么所有的都变了,

常引用,不能通过常引用去修改其引用的内容,

1.2 const关键字

常量指针

1.3 动态内存分配

用new运算符实现动态内存分配
可以分配一个数组,怎么写
用完释放掉用delete,一片空间不能多次释放,最好是释放你分配的动态内存空间。
释放动态分配的数组,

1.4 内联函数,函数重载,函数缺省参数

函数调用是有开销的,
为了减少函数调用的开销,引入内联函数的机制。
函数前面加上inline,就可以定义内联函数

一个或多个函数,参数数量不同或者类型不同,成为函数重载,
编译器根据调用语句中实参的个数和类型来判断该用哪个函数,
名字一样,参数表不同,叫函数重载,

函数的缺省参数,调用函数的时候可以让最右边连续若干个参数有缺省值,注意必须是连续的,从右往左的连续

函数缺省参数的用途,没有动过手,还不是很理解

1.5 类和对象的基本概念

通过某种语法,将数据结构和操作这些数据结构的函数捆绑在一起,形成一个类,从而使得数据结构和操作这些数据结构的算法呈现出显而易见的紧密关系,这就是封装,

成员变量,成员函数统称为该类的成员,

类看起来就像是带了函数的结构,

怎么简单的使用类

类占用的内存空间大小等于所有成员变量之和

每个对象有各自的存储空间,成员变量改变了不会相互影响,

对象间可以用等号赋值,但是那些比较运算符必须重载才行,

如何使用成员变量和成员函数,
一个是用.
第二种方法就是用指针指向成员,
用法三,引用,然后引用的变量后面加点,

2.1 类和对象的基本概念

类成员的可访问范围,分三种,次数和先后顺序不限制,公有,私有,保护。如果前面没有,那就是缺省的认为是私有的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值