stm32不用c语言的指针,STM32---c语言指针1

STM32—c语言指针1

一、指针基础

int a = 1;

int *p = &a;

要打印a : printf("%d\r\n",a);

printf("%d\r\n",*p);

要打印a的地址: printf("%p\r\n",&a);

printf("%p\r\n",p);

要打印p的地址: printf("%p\r\n",&p);

* : 声明(定义)指针 或 取值

& : 取址

二、数组基础:

1、char *str[3] ={“david”,“bp”,“zhendenp”}; (这个叫指针数组) 对的,这种多个字符串的数组只能用char指针数组定义

str[0] 为数组首个元素(“david”)的地址

str[1] 为数组第二个元素(“bp”)的地址

str[2] 为数组第三个元素(“zhendenp”)的地址

注意:不是&str[0],&str[0]是指针str[0]的地址,是指针的地址,不是指针指向的元素的地址。、

*str[0]为数组首个元素(“david”)的首个字母的值,可以理解为二维数组,david是第二层数组。

*str[1]为数组第二个元素(“bp”)的首个字母的值,可以理解为二维数组,bp是第二层数组。

*str[2]为数组第三个元素(“zhendenp”)的首个字母的值,可以理解为二维数组,zhendenp是第二层数组。

2、char str[3] ={“david”,“bp”,“zhendenp”}; 错的,这种多个字符串的数组只能用char指针数组定义

3、char str2[3] = {“daa”}; 对的,这个相当于str2[0]=“d”,str2[1]=“a”,str2[2]=“a”

其中str2和&str2[0]相等。都是数组首个元素(“d”)的地址

4、char str2[3] = {“dava”}; 错的,“dava”为4个字符,大于定义的str2[3]

#include "stm32f10x.h"

#include "bsp_usart.h"

char *str[3] ={"david","bp","zhendenp"};

int i;

int main(void)

{

for(i = 0; i<3;i++){

printf("%s\r\n",str[i]);

}

for(i = 0; i<3;i++){

printf("%c\r\n",*str[i]);

}

}

串口输出:

david

bp

zhendenp

d

b

z

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值