嵌入式学习第四天

今天是嵌入式学习的第四天,经过四天的学习,我已经可以利用所学的知识写一些简单的数值计算和数值判断。今天的学习紧接昨天的内容,学习了一些常用的函数和逻辑运算符。

一、常用输入输出函数后半部分

1.  printf

(1)打印非输出控制符

示例:  printf(“Hello World!”);

双引号中可以通过添加符号来改变打印效果:

\n  换行符
\t  横向制表符
\v  纵向制表符
\b  退格符
\r  回车符
\\  \字符 
\"  "字符 

(2)打印单个输出控制符

示例:    int Num = 0;

               double f = 2.7;

                printf(“Num = %d\n”,Num);

%d       按照十进制打印
%o       按照八进制打印 
%x       按照十六进制打印
%c       按照字符打印
%f        按照浮点数类型打印
%s       按照字符串打印
%p       按照指针类型打印 
%u       按照无符号类型打印 
%e       按照科学计数法打印浮点数类型
%%      打印%号 
 

(3)打印多个输出控制符

int Num1 = 100;

int Num2 = 200;

printf(“Num2 = %d,Num1 = %d\n”,Num2,Num1);

需要注意的是,输出控制符的个数需与后面表达式个数一一匹配。

(4)printf格式化打印

        %nd     n:域宽,数据不足域宽,高位用空格补齐
        %0nd    0:数据不足域宽,高位用0补齐
        %-nd    -:左对齐
        %.mf    m:保留小数点后m位有效数字

2.scanf

(1)接收非输入控制符

scanf(“m”);

非输入控制符需要原封不动的从终端输入

(2)接收输入控制符

        %d          按照有符号十进制接收数据
        %c          按照字符接收数据
        _%c         接收一个' '和'\n'的字符
        %f          按照float接收数据
        %lf         按照double接收数据
        %s          按照字符串接收数据 

(3)接收多个输入控制符

示例:int Num1 = 0;

           int Num2 = 0;

           float f = 0;

           scanf(“%d%d”,&Num1,&Num2);

           scanf(“%d%d”,&Num1,&Num2);

注意事项:

1.scanf如果输入数据与想要接收的数据不匹配,从不匹配的位置开始不再向后读取

2.scanf除了%s形式外,都需要加 &

3.scanf中只有%c形式,可以接收' '和'\n'字符 

4.scanf中_%c不会接收' '和'\n'字符 

5.scanf中严禁\n ,当scanf中出现\n,输入数据结束后并不能用回车结束输入,而是在再次接收数据之后才能用回车结束输入。

3.puts

示例:   puts(“Hello world!”);

puts的功能是在终端打印一行字符串,与字符串常量相似的,打印出的字符串末尾有一个\n字符

4.gets

gets可以从终端接收一行字符串

在接收的过程中,gets会去掉\n字符

与scanf不同的是,gets可以接收带空格‘ ’的字符串,sancf则无法接收。

二、流程控制

1.顺序结构

顺序结构依次执行main中的代码,从main函数开始执行,执行到main结束。

2.分支结构

(1)if

        if函数是一种较简单的分支结构

        示例:if(逻辑表达式)

                    {

                     语句块1;

                     }

                    else

                     {

                        语句块2;

                     }

if函数的执行流程为:若逻辑表达式为真,则执行语句块1,否则执行语句块2。

需要注意的是,if后必须加入判断条件,而else不能加判断条件。可以单独使用if,但不能单独使用else。在使用时,if 和else如果不加括号,系统默认控制一句代码。为了保证程序的稳定性,尽量在使用if时加上括号。

(2)逻辑表达式

1.关系运算符

> 大于,< 小于,>= 大于等于,<= 小于等于,== 等于,= 不等于

关系运算符链接两个数据,当数据满足关系运算符代表的关系时,表达式为真,否则为假

2.逻辑运算符

&&逻辑与:一假则假,全真为真,可理解为“既...又...”

|| 逻辑或:一真则真,全假为假,“...或...”

!逻辑非:真取非得加,假取非得真   

逻辑运算符具有截断特性:当&&或||仅凭左侧值便能得出逻辑结果时,右侧值不再计算。

示例:

#include<stdio.h>
int main(void)
{
    int a=1;
    --a %% a--.
    printf("%d",a);
    return 0;
}

如所示代码,此代码运行结果是0。

因为&&左侧的--a值为0,根据逻辑与一假则假的特点,已经足以判断逻辑运算的结果,&&右侧的a--不被计算,故a的值为0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值