当前位置: 首页 > news >正文

【嵌入式学习2】基础语法

目录

## 数据类型

## 变量

## 命名规则

## char

## 布尔型

## 基本数据类型长度

## 可移植类型

## 自定义的常量

## 进制数表示

## 数值存储方式

## 数值范围

## 输入输出

## 运算符

## 类型转换


## 数据类型

基本类型构造类型指针类型
整型 int 、short、long数组类型char *
字符型 char结构类型 structint *
浮点型 float、double联合类型 unionint **
枚举类型 enum

数据类型的作用:编译器预算数据分配的内存空间大小(规范内存的开销,约定数据在内存的格式)

## 变量

## 命名规则

尽量使用驼峰命名法

## char

  • ASCII码图:

  • 在给字符型变量赋值时,需要用一对英文半角格式的单引号(' ')把字符括起来

## 布尔型

bool a = true / false

## 基本数据类型长度

数据类型长度(byte)
char1
short

2

int4
long4 或 8
float4
double8
long double16 或 更多
void/

## 可移植类型

  • C语言通过 stdint.h 提供了精确宽度的整数类型,确保在不同系统上具有相同的大小和行为。inttypes.h 则提供了与这些类型相关的格式化宏,用于输入输出操作。

## 自定义的常量

  • #define 是C语言的预处理指令,用于在编译之前进行文本替换
  • const 是C语言的关键字,用于定义常量变量
特性#defineconst
实现方式预处理阶段的文本替换编译阶段定义的变量
是否有类型没有类型,只是文本替换有明确类型
是否占用内存不占用占用
作用范围从定义到文件结束或下一个同名 #undef与普通变量相同,取决于定义位置
是否可修改不可修改(因为是文本替换)不可修改(但可以通过指针修改,不推荐)

## 进制数表示

二进制八进制十进制十六进制
0b或者0B数字0开头正常数字0x或者0X
0b0001/10x01
0b0010/20x02
0b0100/40x04
0b1000/80x08
0b1111/160x10
//320x20
//640x40
//1280x80

## 数值存储方式

  • 原码:符号位正0负1
  • 反码:正数是自己本身;负数按位取反符号位不变
  • 补码:正数是自己本身;负数在反码基础上+1

运算使用补码

## 数值范围

数据范围(用原码表示):

  • uint8_t无符号数: (0 ~ 255) 0000 0000 ~ 1111 1111

  • int8_t有符号数: (-127 ~ 0 ~ 127) 1111 1111 ~ 0000 0000 ~ 0111 1111

  • int8_t有符号数:(-128 ) 1000 0000

## 输入输出

  • printf(“%d”,a)
  • scanf(“”,&a)
%c

char

%d

int

%ffloat
%schar *

字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)

%pvoid *

以16进制形式输出指针

## 运算符

左移运算,低位补零;右移运算,高位补零

## 类型转换

  • 自动类型转换(隐式转换):将a的值转化位double再给b
int a =10;
double b = a;
  • 强制类型转换(显示转换)
int m = 3;
int n = 6;
k = (double)n / m ;

转换原则:

## 题目

  1. 编写一个程序,要求用户输入一个十进制整数,然后以十六进制输出
#include <stdio.h>

int main() {
    int decimalNumber;

    // 提示用户输入一个十进制整数
    printf("请输入一个十进制整数:");
    scanf("%d", &decimalNumber);

    // 输出该整数的十六进制形式
    printf("该数的十六进制形式为:%X\n", decimalNumber);

    return 0;
}

使用 %X 格式符将整数以十六进制形式输出

     2.编写一个程序,要求用户输入一个字符,然后输出该字符的ASCII码值

#include <stdio.h>

int main() {
    char ch;

    // 提示用户输入一个字符
    printf("请输入一个字符:");
    scanf("%c", &ch);

    // 输出该字符的ASCII码值
    printf("字符 '%c' 的ASCII码值是:%d\n", ch, ch);

    return 0;
}

     3.编写一个程序,要求用户输入一个字符,然后将该字符转换为大写字母,并输出结果

#include <stdio.h>
#include <ctype.h> // 包含标准库中的字符处理函数

int main() {
    char ch;

    // 提示用户输入一个字符
    printf("请输入一个字符:");
    scanf("%c", &ch);

    // 将字符转换为大写字母
    char upperCh = toupper(ch);

    // 输出转换后的结果
    printf("转换为大写字母后:%c\n", upperCh);

    return 0;
}

也可以用字符的ASCll加32得到大写字母  

   4.编写一个程序,定义一个整型常量,存储你的出生年份,然后输出该常量的值

#include <stdio.h>

int main() {
    // 定义一个整型常量,存储出生年份
    const int birthYear = 2000; // 请将2000替换为你的实际出生年份

    // 输出该常量的值
    printf("我的出生年份是:%d\n", birthYear);

    return 0;
}

相关文章:

  • ROM(只读存储器) 、SRAM(静态随机存储器) 和 Flash(闪存) 的详细解析
  • SpringCloud构建一个服务步骤
  • 在刀刃上发力:如何精准把握计划关键节点
  • 数据结构——串
  • Java 大视界 -- Java 大数据中的数据隐私保护技术在多方数据协作中的应用(147)
  • B树和 B+树
  • 如何实现单点登录?
  • 【js逆向入门】图灵爬虫练习平台 第九题
  • Linux进程控制(四)之进程程序替换
  • Spring Boot02(数据库、Redis)02---java八股
  • HTML网页代码预览器
  • 【Linux】Ubuntu 24.04 LTS 安装 Hadoop-3.4.1
  • TCP | 序列号和确认号 [逐包分析] | seq / ack 详解
  • 视频播放器(watermelon Player)vue2使用体验(教程版)
  • Android Compose 框架按钮与交互组件模块源码深度剖析(二)
  • windows清除电脑开机密码,可保留原本的系统和资料,不重装系统
  • others-rustdesk远程
  • 带你从入门到精通——自然语言处理(十. BERT)
  • LeetCode hot 100 每日一题(13)——73. 矩阵置零
  • ubuntu22.04安装搜狗输入法保姆教程~
  • 第三款在美获批的国产PD-1肿瘤药来了,影响多大?
  • 嫦娥五号《月球样品借用协议》签约,2025中国航天公益形象大使公布
  • 漫游者秦龙,一生为经典画插图
  • 官宣一起打造智能汽车品牌后,华为喊话上汽要准备好足够产能
  • 魔都眼·上海车展③ |被外籍展商围观的国产品牌
  • 首开股份:去年亏损约81.4亿元,是公司发展史上极其困难的一年