c语言指针

c语言指针使用:
1、指针指向数组的用法:
(1)定义一个数组,指针指向数组,指针的使用:
int buf[5]={0,1,2,3,4};
int *p_buf = buf或者写成int *p_buf=&buf[0];
int *p=buf+1表示指针指向数组的第2个元素;和int *p=&buf[1]表示的含义是一样的;
int *p=buf+3表示指针指向数组的第4个元素;和int *p=&buf[3]表示的含义是一样的;
使用指针指向的数组数值时可以直接写p_buf[0]、p_buf[1]、p_buf[2];
总结一句就是:指针指向一个数组的2种写法:
int *p=数组名或者 int *p=&数组名[0];
2、函数中的形参如果是指针,使用技巧:
(1)可以将形参指针定义为空指针,后边使用的时候再转化;
例题1:
uint8_t uart2_dma_idle_hdl(void *data,uint16_t len, void *d)
{
uint8_t *udata = (uint8_t *)data;

}
void * data 是一个无类型的指针参数,任意类型指针可以赋值给data,当data赋值给其他类型时需要先指定数据类型。
例题1中,函数 uart2_dma_idle_hdl的形参是空指针类型,函数中使用时,先将空指针进行了强制转化(uint8_t *)data,将空指针强制转化为unsigned char类型;其中(uint8 *) t表示强制转换成uint8_t类型的指针;

例题2:
uint8_t send_to_pc(void *data, uint16_t len, void *d)
{
mdks_pck_head *head = (mdks_pck_head *)data;
}
例题2中,函数 send_to_pc的形参是空指针类型,函数中使用时,先将空指针进行了强制转化(mdks_pck_head *)data,将空指针强制转化为mdks_pck_head 类型(在程序中是结构体类型);
3、指针指向变量和常量的值
(1)指针指向一个变量的值
基类型 *指针变量名 = 初始地址值;
例如:
int a;
int *p=&a;
把变量a的地址作为初值赋给p,从而p指向了变量a的存储空间。
(2)指针指向一个常量
int *p=10;目前暂且这么理解,后边有时间再细细体味!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值