C++学习笔记(一)

函数指针

函数所占内存区域的起始地址,赋给一个指针,即为函数指针。

定义形式:
类型名 (*指针变量名)(参数类型1,参数类型2,…)

调用方法:
函数指针名(实参表)

基本概念

位运算:
用于对整数类型(int,char,long等)变量中的某一位(bit),或者若干位进行操作。比如:
1)判断某一位是否为1
2)只改变其中某一位,而保持其他位都不变

六种位运算符:
& 按位与
!按位或
^ 按位异或(两个二进位不相同时,结果的对应二进制才是1)
~ 按位非
<<左移
>>右移

若想将某变量中的低八位全置成1,而其余位不变,则可以执行:

n |= 0xff
0xff:1111 1111

若想将某变量中的低八位取反,而其余位不变,则可以执行:

n ^= 0xff
0xff:1111 1111

异或运算可以实现简单的加密和解密。

异或运算可以实现不通过临时变量,就交换两个变量的值:

int a = 5, b = 7;
a = a ^ b;
b = b ^ a;
a = a ^ b;

左移运算符:
a<<b
将a整体左移b位。

右移运算符:
如果原符号位为1,则右移时高位就补充1

引用

类型名&引用名=某变量名

int n = 4;
//r的类型是int &
int & r = n;

1)定义引用时一定要将其初始化成引用某个变量;
2)初始化后,它就一直引用该变量,不会再引用别的变量了;
3)引用只能引用变量,不能引用常量和表达式。

void swap(int & a,int & b)
{
int tmp;
tmp = a; a = b; b = tmp;
}

int n1, n2;
swap(n1, n2);//n1,n2的值被交换

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

const的应用

1)定义常量

const int a =1

2)定义常量指针

//不可通过常量指针修改其指向的内容
int n,m;
const int * p = & n;
* p = 5;//编译出错
n = 4;//OK
p = &m;//OK,常量指针的指向可以变化

不可以把常量指针赋值给非常量指针,反过来可以

3)定义常引用

动态内存分配

用new运算符实现动态内存分配
1) P = new T
T是任意类型名,P是类型为T*的指针。动态分配出一篇大小为sizeof(T)字节的内存空间,并且把内存空间的起始位置赋给P

2)分配一个数组
P = new T[N];
动态分配出一篇大小为N * sizeof(T)字节的内存空间,并且把内存空间的起始位置赋给P

new运算符表达式的返回类型都是T*

new动态分配的内存空间,一定要用delete运算符进行释放。

delete 指针;//该指针必须指向new出来的空间

一片空间不能被delete两次

在释放动态分配的数组时,使用

delete []指针;

最近学数据结构与算法,发现好多是基于C++讲的,就还是决定把C++捡起来复习一下。
选用的教程是Coursera北京大学的C++程序设计这门课。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值