嵌入式开发–C语言基础10

学习目标:

嵌入式开发–C语言基础10


学习内容:

指针2


学习时间:

2024年4月28日


学习产出:

在这里插入图片描述

1.字符型数组和字符串的传参

char str[32] = {"hello world"};

int fun(char *pstr);

2.二级指针

指向一级指针变量的指针

3.void *指针

用来保存地址

void *p;                    //所有指针都是8个字节

void * -> int *char *double * 不需要强制类型转换

int *char *double * -> void * 需要强制类型转换

void * 作为函数参数,可以传入char *double *int *的指针,实现一个函数原型下的不同类型指针的传参

4.const指针

const == readonly

1.const int *p;
2.int const *p;

1和2是等价的,const 修饰 *p, p可以改变, *p不能改变只能使用指针指向的空间数据,不能修改此数据

3.int *const p;

const 修饰 p, p不可以改变, *p可以改变,一定要初始化,否则该指针为野指针
永远指向某个空间的指针(比如数组的数组名)

4.const int *const p;
5.int const *const p;

4和5是等价的,const 修饰p *p, p不可以改变, *p不可以改变,一定要初始化

5.数组指针和指针数组

1.数组指针:数组指针是指针,指针指向整个数组

数组指针:对一维数组名&,值不变,类型升级为指向整个数组的数组指针
对数组指针*,值不变,类型降级称为指向数组第一个元素的指针

a可以理解为int * ,但在以下两种情况下a不能理解为int *型

1.sizeof操作
2.&操作

&int *  ==   int ** 
&a      ==   int (*)[5]

2.指针数组:
指针数组是数组,数组的每个元素都是指针

存放字符串数组用二维数组
操作字符串数组用指针数组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值