项目名称 | 【苏嵌实训-嵌入式linuxC第3天】 |
---|---|
今日进度以及任务 | 学习了C语言的基本知识 |
本日任务完成情况 | 掌握了C语言的基本知识 |
本日开发中出现的问题汇总 | C语言中的细节问题要注意 |
本日未解决的问题 | 无 |
本日开发收获 | 进一步熟悉了C语言 |
其他 | 无 |
C语言
一、概述
1、C语言之父?丹尼斯里奇
2、C的特点(优势)?
- 直接访问硬件
- 运行效率
- 移植性
<C语言为什么能够直接访问硬件?因为它有指针类型,能够直接访问地址>
<嵌入式为什么选择C语言?所有操作系统的内核都采用了C语言>
<python会最终替代所有的编程语言?>
3、C语言语法标准详解?K&RC、C89、C99、C11
语言标准 | 详解 |
---|---|
K&RC | |
C89 | 这个版本的C语言标准作为 K&R C 的一个超集(即 K&R C 是此标准C的一个子集),把后来引入的许多非官方特性也一起整合了进去。其中包括了从 C++ 借鉴的函数原型(Function Prototypes),指向 void 的指针,对国际字符集以及本地语言环境的支持。 |
C99 | C99 标准引入了许多特性,包括内联函数(inline functions)、可变长度的数组、灵活的数组成员(用于结构体)、复合字面量、指定成员的初始化器、对IEEE754浮点数的改进、支持不定参数个数的宏定义,在数据类型上还增加了 long long int 以及复数类型。 |
C11 | 引入字节对齐说明符、泛型机制(generic selection)、对多线程的支持、静态断言、原子操作以及对 Unicode 的支持。 |
4、如何学习C语言?C语言的趣味100题;力扣;项目(github)
二、数据类型
1、所有的数据类型的定义及初始化
用变量a给出下面定义:
-
一个整型数 int a —— 整型变量
-
一个指向整型数的指针 int *a —— 整型指针变量
-
一个指向指针的指针,它指向的指针指向一个整型数int **a —— 整型指针的指针变量
-
一个有十个整数的数组 int a[10] —— 整型数组
-
一个有10个指针的数组,该指针指向一个整数类型 int *a[10] —— 整型指针数组
-
一个指向有10个整型的数组指针 int (* a)[10] ——数组指针变量,指向的是整型数组
-
一个指向函数的指针,该函数有一个整数参数并返回一个整型数int (*a)(int) —— 函数指针变量,指向的形参为整型,返回值为整型
-
一个有十个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数int (*a[10])(int) —— 函数指针数组
2、各种数据类型的字节长度(所占内存空间大小)及取值范围?各种数据类型的指针的字节长度?
- 指针变量的字节长度是固定的,地址在操作系统中是固定长度。长度是由操作系统的位数决定的
3、sizeof VS strlen
- sizeof是运算符,不是函数,作用:计算数据类型或者变量所占内存空间的大小
- strlen:字符串库函数;作用,统计当前字符串的字符个数,不包含\0