STM32学习 第十二天

一、字符变量

char c='?'

(1)c是一个字符变量,实质上是一个字节的整形变量,由于它常用来存放字符,所以称为字符变量。
(2)’?’,引号加一个字符,实质上是一个ASCII码的值,是一个整数,比如这个’?'的值为63。

二、通过指针引用字符串

char*string="1234567kljixixi"

(1)这里string是一个指针变量,基类型为字符型。它只能指向一个字符类型数据,而不能同时指向多个字符数据,只是把"1234567kljixixi"的第一个字符的地址赋给指针变量string,这样可以理解为string指向"1234567kljixixi",实质上只是指向字符串的第一个字符。
(2)C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。

char c[10]={'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'};//10个字符分别赋绐c[0]到c[9]10个元素。
初值个数小于数组长度,则只将这些字符赋绐数组中前面的元素,其余元素自动定为空字符(即’\0’)。

可以用字符串常量来初始化字符数组;
char c[]=“I am happy”; 注意此时数组的长度不是10,而是11,因为系统自动加上了’\0’

三、strlen
(1)头文件:#include <string.h>
strlen()函数用来计算字符串的长度,其原型为:

 unsigned int strlen (char *s);

(2)strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。
(3)函数的返回值是字符串的字符数
(4)用法:
①char*指针
②数组名

char a[]=”hh”; 
    strlen(a); 

strlen的结果是2
如果测量数组呢?

char a[]={‘h’,’h’}; 
            strlen(a); 

结果就不一定了。strlen函数会寻找’\0’,但找不到。

三、sizeof
(1)sizeof是一个运算符,不是函数;计算的是字节数
(2)sizeof使用时一般都会在后边加括号,避免出错
(3)sizeof 的操作数可以是数据类型、函数、变量
(4)①数据类型
sizeof(int) = 4;
sizeof(unsigned int) = 4;
sizeof(short int) = 2;
sizeof(unsigned short) = 2;
sizeof(long int) = 4;
sizeof(unsigned long) = 4;
sizeof(float) = 4;
sizeof(double) = 8;
sizeof(long double) = 12;
②变量名
计算变量占据的储存空间大小,具体大小与变量的类型有关
③函数
计算返回值类型的大小

四、memcpy函数
(1)函数声明

  void *memcpy(void *str1, const void *str2, size_t n)// 从存储区 str2 复制 n 个字符到存储区 str1

(2)参数
str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
str2 – 指向要复制的数据源,类型强制转换为 void* 指针。
n – 要被复制的字节数。

五、简单的UART1实现方法
方法一:
在这里插入图片描述
方法二:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值