day03.C++函数与指针(含new与delete关键字,函数指针,指针函数,指针数组)

目录

一.指针

1.指针的作用

2.指针的定义与使用

(1)一级指针:

<1>.定义,赋值与输出:

(2)二级指针

<1>.二级指针的定义,赋值与输出

<2>.二级指针的步长:

3.空指针与野指针

4.指针的值

​编辑5.利用指针访问对象

6.关键字new与delete【动态内存管理】⭐️

(1)作用:

(2)使用:

7.指针与数组

   8.指针数组

二.函数

1.文件包含

2.指针作为函数形参

3.指针函数

(1)指针函数的定义

(2)指针函数的声明

4.函数指针

(1)函数指针的定义

(2)函数指针的声明方法

5.函数重载

(1)函数重载的概念

(2)C++函数重载的原理



一.指针

#include<iostream>
using namespace std;
#define pi 3.14159//定义常量

int main(){
    cout<<pi<<endl;
    int a=10;
    int *p=NULL;//定义指针
    p=&a;
    cout<<"a的地址为:"<<p<<endl;
    cout<<"a="<<*p<<endl;
    return 0;
}

1.指针的作用

通过指针可以间接访问内存

  • 内存编号是从0开始记录的,一般用十六进制数字表示。
  • 可以利用指针变量保存地址。

2.指针的定义与使用

语法:数据类型 * 变量名。  int *p;

(1)一级指针:

<1>.定义,赋值与输出:
#include<iostream>
using namespace std;
int main()
{
	int a=10,b=11;
	int *p=&a;
    int *t=NULL;//定义一个指针
    t=&b;//&取地址
	cout<<"指针t:"<<*t<<endl<<"b的地址:"<<&b<<endl<<"b="<<b<<endl;
	return 0;
}

(2)二级指针

<1>.二级指针的定义,赋值与输出
#include<iostream>
using namespace std;
int main()
{
	int a=10;
	int *p=&a;
	int **pp=&p;
	cout<<"*p:"<<*p<<endl<<"&a:"<<&a<<endl<<"a:"<<a<<endl<<"**pp:"<<**pp<<endl<<"&pp:"<<&pp<<endl<<"&p:"<<&p;
	return 0;
}

*p:10
&a:0x6ffdfc
a:10
**pp:10
&pp:0x6ffde8
&p:0x6ffdf0

#include <iostream>
using namespace std;
int main()
{
    int i = 9, t = 10, k = 11;
    int *p = &i;
    int *m = &i;     // 一级指针p,m
    int **pp = &p;
    int **mm = &m; // 二级指针pp,mm
    cout << "一级指针*p=" << *p << endl
         << "二级指针**pp=" << **pp << endl;
    cout << "一级指针*m=" << *m << endl
         << "二级指针**mm=" << **mm << endl;
    cout << "修改一级指针的内容后:" << endl;
    *p = t;
    cout << "一级指针*p=" << *p<< endl
         << "二级指针**pp=" << **pp << endl;
    cout << "修改一级指针的指向后:" << endl;
    *mm=&k;
    cout << "一级指针*m=" << *m << endl
         << "二级指针**mm=" << **mm << endl;
    return 0;
}

<2>.二级指针的步长:

所有类型的二级指针,由于均指向一级指针类型,并且所有一级指针类型大小是 4,

所以二级指针的步长也是 4。
<3>.改变n-1级指针的指向:

    可以通过一级指针,修改 零级指针(变量)的内容。
    可以通过二级指针,修改一级指针的指向。
    可以通过三级指针,修改二级指针的指向。

    可以通过四级指针,修改三级指针的指向。
     ·····
    可以通过修改 n  级指针,从而间接修改 n-1  级指针的指向。

3.空指针与野指针

空指针ÿ

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值