C语言基础心得体会一

 

c语言基础:第一天笔记

计算机组成

1.定义:能进行计算计算和逻辑处理的设备

2.硬件:组成计算机的各种物理部件。(内存条,CPU,鼠标,键盘......)

硬件=电子设备+单片机编程(单片机,微控制器)+集成电路(原理图PCB设计)+嵌入式)

系统)

3.软件:计算机中运行的程序和数据(LINUX应用开发)

软件=系统软件(Linux系统)+应用软件+编程语言(C/C++)+算法和数据结构

##########计算机的六大部件

中央处理器(CPU):控制加计算

内存:程序运行时,临时存储数据。

输入设备:向计算机输入数据,(键盘,扫码枪)

输出设备:将计算机数据进行输出,(显示器,打印机)

外存储器:永久数据存储(文件)的存储,(磁盘(硬盘))

网络:提供存储

#######计算机的工作原理

程序存储

程序控制

计算机的语言

机器语言:最底层的语言,通常由0和1构成,直接作用硬件。

汇编语言:充当翻译,

高级语言:C/C++,Java,Python,PHP,C#,GO,

C语言简史与特点

其前身是B语言

B语言是美国贝尔实验室的Ken Thomposn(肯.汤普森)于1969开发出来的,并用B语言编写了C语言。

1972年美国贝尔实验室的丹尼斯里奇在B语言基础上开发的C语言。C语言提供了和标识符,使得程序的编写百年的非常高效和方便。1973年初,C语言的主体完成。汤普森和里奇迫不及待地开始用它完全重写了UNIX。

C 语言的标准
为了 C 语言健康发展下去,很多有识之士及美国国家标准协会( ANSI )于 1982 年成立了一个委员会
以确定 C 语言的标准。
1989 ANSI 发布了第一个完整的 C 语言标准,即 C89 。不过人们习惯性的称为 “ANSI C”
1990 ISO( 国际标准化组织一字不改的采纳了 C89 ,官方给出的名称为 ISO C90)
1999 年, C 语言标准经过了一次修正和完善后, ISO 发布了新版的 C 语言标准,简称 ” C99”
2018 6 月份发布的 “C18”GNU C 标准 ( 标准 C 的扩展 ) ,进一步增强了语言的稳定性和功能性。
2011 12 8 日, ISO 又正式发布了新的标准,称为 ISO/IEC9899:2011 ,简称为 “C11”
“C23” 是最新的标准,预计将进一步扩展 C 语言的功能和性能。
应用于 Linux 系统,当然 Linux 也支持标准 C ,因为标准 C 是跨平台的。
嵌入式开发就是针对 Linux 系统的开发,而 Linux 系统是使用 C 语言开发的,所以从事嵌入式开发要
使用 C 语言。
C 语言特点
C 语言是一种强大而灵活的语言,可以用来编写任意复杂的程序。
C 语言简洁、紧凑,使用方便。
C 语言是可移植的。
C 语言很适合结构化程序设计,因而要求用户以功能模块的方式来思考问题。
C 语言可直接控制硬件 ( 位运算符 , 地址 )
生成目标代码质量高,程序执行效率高,运行速度快。
开发的三个步骤
编辑:程序员向 .c 文件写入源代码(程序员)
编译:将源文件( .c )编译成可执行程序(二进制)(编译器)
运行:运行可执行程
C 语言程序的编译过程
本章分简单了解,后续章节讲解细节!
编译过程分为四个步骤:
预处理
编译
汇编
链接
C 语言的基本结构
一个简单的 C 语言程序
功能:要求在控制台输出 “hello world!”
代码:
程序结构分析:
注释:
代码中起到解释说明的文字(提高代码的可读性),或者对代码进行屏蔽,注释不会被执
行,它在预处理阶段就被删除了。
/*************************************************************************
> File Name: demo01.c
> Author: FPF
> Description: 输出 hello,world
> Created Time: 2025 01 20 日 星期一 10 53 39
*********************************** ******************************/
#include
int main ( int argc , char * argv [])
{
printf ( "hello world!\n" );
return 0 ;
}
// 格式化这里的代码: shift + tab
程序结构分析:
注释:
代码中起到解释说明的文字(提高代码的可读性),或者对代码进行屏蔽,注释不会被执
行,它在预处理阶段就被删除了。
预处理指令:
程序中包含的某一文件内容( #include
主函数:
C 程序的入口函数,一个 C 文件有且仅有一个主函数( main 函数)
函数首部(函数头) / 函数说明
说明函数类型,函数头由函数名和函数参数,举例: int main(int argc,char *argv[])
函数体:
包括变量说明和语句执行部分,举例: {..}
函数调用语句:
比如格式输出函数: printf() ,输出 “hello world!”
C 语言编码规范要求
C 语言在编码的时候,需要遵循如下规范:
常用缩进书写格式(一般缩进 2~4 个字符,推荐 4 个字符,咱们使用的 Linux 默认就是 4 个)
要有足够的注释(添加必要的注释,是代码更好理解)
有合适的空行(一般预处理命令和函数之间、全局变量和函数、函数和函数之间 ... ,使的代码结
构更清晰)
{} 对齐( C C++ { } 都需要独占一行,千万不要受到 Java 影响)
函数体内采用分层缩进和模块化的书写方式。
不把多条语句写在程序的同一行上。
命名:变量或者函数命名要尽可能包含更多含义,但不能太长。
C 语言程序的设计特点
C 语言程序在设计的时候,需要注意以下细节:
C 程序由一个或者多个函数组成,但有且仅有一个主函数( main 函数); main 函数是程序的入
口函数,可置于程序的任意位置,但是建议放在所有函数的最下面。
程序中可以有预处理指令(如: #include 指令)预处理指令通常在程序的最前面。
每个语句以分号结尾;( 预处理指令 函数头 函数、分支、循环后的花括号 后面不能添加分
号,否则报错。)
函数体由一对花括号 {} 括起来。
包含在 /../ 内的文本为注释内容。
一行可以写多个语句,一个语句也可以写在多行上。
/*************************************************************************
> File Name: demo01.c
> Author: FPF
> Description: 输出 hello,world
> Created Time: 2025 01 20 日 星期一 10 53 39
************************************************************************/
#include
int main ( int argc , char * argv [])
{
printf ( "hello world!\n" ); printf ( "hou feng\n" ); // 不推荐
// 一行写多个语句
int a , b , c ; // 推荐
int a = 3 , b = 4 , c = 5 ; // 推荐
// 一个语句写在多行上
while ( 1 )
{
}
return 0 ;
}
// 格式化这里的代码: shift + tab
C 语言中的注释
C 语言中,注释一般分为两类: 单行注释 多行注释
注释的作用:给代码添加解释说明性文字,提升代码的可读性,注释本身是不会被执行。同时也可
以使用注释屏蔽代码。
单行注释
说明:单行注释使用双斜杠 //.. 表示。我们一般用于常量、变量、函数调用等。
语法:
范例:
多行注释
说明:多行注释使用斜杠星花 /*..*/ 表示。它可以占用多行,但不能嵌套。我们一般用于函数,
文件头说明等。
语法:
范例:
// 注释的内容
1
// 预处理指令,引入系统的标准的输入输出库(标准 IO 中的外设 IO
#include
int main ()
{
// 向控制台打印输出一句话
printf ( "hello world!\n" );
return 0 ;
}
/*
要注释
的内容
*/
当前第 8 页,共 16 注意:由多行注释衍生出一种更为细致的注释,我们称之为文档注释
范例:
数据类型
定义
数据类型其实是固定大小内存的别名,并且描述了一个变量存放什么类型的数据。简单来说,就是
组织和操作数据。
数据:计算机要处理的数据(数字、字符串、文字、符号、图片、音频、视频等)
数据类型不仅帮助我们组织和操作数据,还决定了程序如何有效的利用内存。
了解数据类型的内存需求是理解计算机管理和操作数据的关键。
小贴士:
程序的运行需要用到内存。
内存存储容量单位
字节( byte ):计算机存储容量的一种单位( C 语言中一般都是以字节为单位进行存储空间的计
算),一般应用层最小存储单元的表示。
比特位( Bit ):二进制数( 0,1 )计算机是以二进制的方式进行存储的,我们应用层可以通过位运
算进行位的操作。
1Byte = 8Bit
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
...
数据类型分类和计算方法
数据类型分类
基本类型( C 语言内置)
数值类型:
整型:
短整型: short short int
基本型: int
长整型: long long int
长长整型: long long long long int
浮点型:
单精度型: float
双精度型: double
长双精度型: long double
字符类型: char
构造类型(用户自定义)
结构体: struct
联合体 / 共用体: union
枚举类型: enum
指针类型: * (解引用符) /& (取地址符)
空类型: void
数据类型在内存中的大小
序号                    数据类型                                            中文说明                                 大小(字节)
1                      short( short int )                                    短整型                                              2
2                             int                                                    基本整型                                            4
3                       long( long int )                                       长整型                   4( 32 位编译器) / 8                                                                                                                                     64 位编译 器)
4                       long long( long long int)                     长长整型                                            8
5                                 float                                           单精度浮点型                                       4
6                                 double                                        双精度浮点型                                       8
7                             char                                                      字符型                                            1
8                          bool( _Bool )                                  布尔型,真-true, - false           bool: 1 ;                                                                                                                                  true 4 false 4
注意;
1. 因为 C 语言没有 Byte 这个单位,所以我们一般使用 char 来表示字节,因为 1char = 1byte
2. C 语言本身并没有提供布尔类型,但是后期提供了一个 bool 的库,从而让我可以向使用其他语言
一样使用 bool
小贴士:
获取某个数据类型或者变量所占的字节数: sizeof( 某个数据类型或者变量名 )
总结:
数据类型在内存中所占的字节数跟 C 语言的编译系统有关。
计算某个数据类型所占的字节数可以用 sizeof
布尔类型要添加 #include ,大家也可以使用 int 类型的 0 表示假,非 0
示真。
校验各个数据类型在内存中的大小。
printf ( "true size:%d\n" , sizeof ( true )); // true size:4 解释: true 4 个字节, bool 的底层是 int
类型的 0 和非 0
printf ( "false size:%d\n" , sizeof ( false )); // true size:4 解释: true 4 个字节
printf ( "bool size:%d\n" , sizeof ( bool )); // bool size:1 解释:占 1 个字节
常量与变量
C 语言中,数据的基本表现形式是常量和变量。不管是常量还是变量, 都是需要在内存中申请一
块空间,用于数据的存放。
常量
定义:在程序执行过程中其值不不能被改变的量。
分类: int float double char 和符号常量。
整型常量
整型常量可以用十进制、八进制、十六进制三种形式表示。
十进制常量:由 0~9 的数字组成,没有前缀,不能以 0 开头(举例: 99,218 ,注意: 0 是可以
的,但是 09 是不可以的)
八进制常量:以 0 为前缀,其后由 0~7 数字组成,没有小数部分。(举例: 023,077
十六进制常量:以 0x 或者 0X 为前缀,其后由数字 0~9 和字母 A~F( 大小写均可 ) ,没有小数
部分。(举例: 0x00FF0000
整型常量中的长整型数据可用 L 或者 l 作为后缀,(举例: long num = 123L
整型常量的分类
有符号与无符号基本整型常量
有符号与无符号长整型常量
有符号与无符号短整型常量
整型常量的表示
十进制表示:可以使用 10 个数字符号 0~9 以及 +,- ,如: 123 -90
八进制表示:以 0 开头,可以使用 7 个数字符号 0~7 以及 +,- ,如: 0123 -011
十六进制表示:以 0x 或者 0X 开头,可以使用 0~9 以及 A~F a~f ,如: 0x12 -0x12
浮点型常量
C 语言中浮点数就是平常所说的实数(实型数),有两种表现形式:
十进制小数形式:如: 0.123 -17.8 0.123F
指数形式(科学计数法),如: 1.96e-5可以写作1.96*10^{-5}
注意:
在符号 e 的前面必须要有数字。
在符号 e 的后面必须为整数,不能是带有小数点的实数型。实型常量的后缀用 F( f)
示单精度型。后缀用 L( l) 表示双精度型。
字符常量
用单引号 '' 括起来的一个字符,如: 'a' 'A' '4' '_' 等,比如: ' ' 就不是字符,一个汉字所占的
字节数超过 1 个字符。中文符号当成汉字理解。英文输入法下输入的字母、数字、符号都是单字符
转义字符常量 :以反斜杠 \ 开头的字符序列,表示控制以及不可见字符,如:
转义字符常量:一反斜杠开头的字符序列,表示控制以及不可见字符,如:
序号 字符形式 含义 ASCII码
1 \n 换行 10
2 \r 回车 13
3 \0 空字符 0
4 \t 水平制表符 9
字符串常量
说明:在 C 语言中,是支持字符串常量的,但是不支持字符串变量。字符串变量需要使用字符数组
或者字符指针实现。
用一对双引号 "" 括起来的一个字符序列,如: "How do you do?
yuyuan!" "YueQian" "12" "true" "12.25" 等。
可以输出一个字符序列,如: printf("%s","hello world\n"); | printf("hello world\n");
注意:
字符常量 'a' 与字符串常量 "a" 的区别:
系统自动为字符串常量加上结尾的 \0 ,使所占内存单元多一个,单字符常量的长度不变,可
sizeof()运算符来测量。
符号常量
定义一个表示符来代表一个常量。
如:用 PI 代表圆周率 π ,即: 3.1415926
好处:
增加可读性
增强了可维护性
定义符号常量:
用编译预处理指令 #define
格式: #define 标识符 字符串
标识符和字符串之间用空格隔开
句末不用分号
标识符的命名采用大写,如果有多个单词,使用下划线分隔,举例: MAX_VAL MIN_VAL
范例:
#define 标识符 字符串
1
/*************************************************************************
> File Name: demo01.c
> Author: FPF
> Description: 输出 hello,world
> Created Time: 2025 01 20 日 星期一 10 53 39
************************************************************************/
#include
// 定义一个符号常量 PI
#define PI 3.1415926
#define R 20
int main ( int argc , char * argv [])
{
// 计算圆周长 2×PI×R
printf ( " 计算圆周长: %f\n" , 2 * PI * R );
// 计算圆面积 PI*R*R
printf ( " 计算圆面积: %f\n" , PI * R * R );
return 0 ;
}

你可能感兴趣的:(c语言,开发语言)