您的位置:首页 > 编程语言 > C语言/C++

c++学习笔记(一)从c语言到c++

2019-06-30 23:06 134 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/NNurupo/article/details/94359995

等待完善
本章主要包括:
1.1函数指针
1.2位运算
1.3c++中的引用 &
1.4标识符const与常量
1.5c++与动态内存分配
———————————————————————————————————

1.1函数指针

(1)引入函数指针要了解的事:

1)在程序运行期间,函数占用内存。
2)函数名存放了函数所占内存区域的起始地址,函数名存放了入口地址。

(2)函数指针:将函数的入口地址,赋值给一个指向函数的指针。

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

#include <stdio.h>
void PrintMin(int a,int b) {
if( a<b )
printf("%d",a);
else
printf("%d",b);
}
int main() {
void (* pf)(int ,int);//定义函数指针
int x = 4, y = 5;
pf = PrintMin;//函数指针指向PrintMin的函数入口
pf(x,y);
return 0;
}

(3)用途:形参是函数时,传递函数的入口地址。

如:qsort函数库
void qsort(void *base, int nelem, unsigned int width,
int ( * pfCompare)( const void , const void ));
其中
base:起始地址
nelem:元素个数
width:每个元素的大小
pfCompare( const void ,const void):比较函数,自己编写的。

int ( * pfCompare)( const void *, const void *)这就是函数做形参。

1.2位运算

位运算速度快,可以用于优化代码执行速度 。

1.2.1按位与(&)

(1)双目运算符
(2)规则:11得1其余为0
(3)用途:二进制下,将某些位重置位0。
如:33&0xfff0 可以将后四位重置为0

1.2.2按位或(|)

(1)双目运算符
(2)规则:11得1其余为0
(3)用途:二进制下,将某些位重置位1。
如:33&0x000f可以将后四位重置为1。

1.2.3按位异或(^)

(1)双目运算符
(2)规则:不同为1,相同为0
(3)用途:可用于交换

//做这样的异或操作,相当于交换ab
int a = 33;
int b = 22;
a = a ^ b;
b = a ^ b;
a = a ^ b;

1.2.左移(<<)

(1)双目运算符
(2)将一个数左移n位,相当于乘以2的n次方。前提是没超过Int上限。

1.2.4右移(>>)

(1)双目运算符

1.3引用

个人感觉像是起了个别名
(1)引用的定义方式:

int a;
int & r = a;//定义了一个int类型的引用,并且引用了a;

(2)引用赋值以后,引用和被引用的变量相互替换,并且引用和被引用之间的关系不能改变。

int a , b ;
a = 3;
b = 4;
int & ra = a;//定义a的引用ra
ra = b;//此时b中的5被赋值到a变量

引用的作用:
1)引用调用中传递实参。

#include<stdio.h>
void swap(int & a, int & b);
int mian(){
int a = 4;
int b = 5;
swap(a, b);
return 0;
}
void swap(int & a, int & b){
//通过引用调用传递实参
int temp;
temp = a;
a = b;
b = temp;
}

2)引用作为函数返回值
3)常引用
通过const定义。

int a;
const int & ra = a;
ra = 0;//编译出错
a = 0;//编译正确
2)常引用不能通过引用修改被引用变量的值。

1.4const关键字

1.4.1定义常量

const int a = 4;//定义常量时要赋值

常量无法改变

1.4.2定义常引用

int a = 1;
const int & ra = a;

不能通过常引用改变被引用变量的值

1.4.3定义常指针

int a = 122;
const int* pa = &a;

不能通过指针来改变所指向变量的值。

1.5动态内存分配与标识符new、delete

1.5.1 P = new T

T为一种类型,P为T类型的指针。
动态分配大小与T相同的空间,并把起始地址赋值给指针P

1.5.2 P = new T

动态分配大小与N个T相同的数组空间,并把起始地址赋值给指针P

1.5.3 delete P

1.5.3 delete [] P

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: