找回密码
 注册
关于网站域名变更的通知
查看: 229|回复: 2
打印 上一主题 下一主题

单片机C语言入门学习

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-22 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学。
: G+ x- O6 }; @2 s7 F& X1 l+ z结构化程序设计方法:# p0 I& C9 z. D$ z( g9 Q
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。5 L' H5 o  @" \# e" y9 k
最常见的数据类型,这是你必须要知道的:
' R: h1 B* g" Q" ^! }9 d常量:常量包括字面常量、直接常量和符号常量;" v% O1 b7 O& s( w7 g3 ~9 Z3 @
变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义后使用;每一个变量被定义以确定类型后,在编译时就能为其分配相应的存储单元;9 P9 U* B; k% J9 m1 `) Y
整数类型:整数常量有十进制、八进制和十六进制;“%d”0 b3 a6 b: ^1 k  A; o& ]+ U) X
整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是-32768—32767,有符号型为0~65535.通常把long定义为32位,把short定义为16位,int可以是32位也可以为16位,这都主要取决于机器字长。
6 O* ~- o9 S+ @/ E, b' t实型常量的表示方法:(1)十进制,0.0;(2)指数形式,123e3
# y; C! q2 d! O3 h9 T实型变量:实数型数据在内存中的存放形式,一般在内存中占4个字节,分成整数部分和小数部分存放。实型变量分为float型、double型long double型。实型数据会存在舍入误差。& S5 s. z  F% x1 _
实型常量的类型:C编译系统将实型常量作为双精度来处理。9 R. A7 R& C5 p2 h( B
字符型数组:( C6 ^6 D* g' j, i
(一)字符常量:转义字符(\n——换行,\t——tab,\r——回车,\f——换页,\b——退格,\ddd——1到3位8进制的数代表的字符)8 \4 N1 G0 W$ Z' y4 v2 n
(二)字符变量:字符数据存储形式实际是以ASCII码存储。“%c”
. _& q3 g% N- n# [0 n字符串常量:双撇号括起来的一系列字符序列。
9 {$ {) _2 G  d/ N( `' J算法结构:- X! F% }8 C) P4 n  E
一、顺序结构、选择结构、循环结构;二、循环结构又分为while型、until型、for循环结构;程序流程图;, o3 F' Z' O) `' H/ u# j) O
控制语句:1 k5 u9 b; b* `9 o$ y
完成一定的控制功能。
+ n5 D+ R8 }7 a3 _$ K9 K2 X5 B6 u1、if()~else~3 |! u; W' p+ j# _- e, o1 _/ C
2、for()~% n0 o# A8 A! F, v, O) P; d4 `
3、while()~
' j% o3 J# I# M/ H4 ~4、do~while()
5 g+ g! P0 \8 D: [, {5、continue
: j4 q3 d; D9 K/ ]6、break
) p5 A' u! H( b& t7、switch
+ K8 y( Q8 S: C' U8、goto/ f' \4 _; Z! `2 s
9、return  O) f- x6 ^- i3 I- C
字符数据的输入输出:
/ l2 G  E2 \7 M' z! ^! Q1、putchar()输入字符变量8 x- |  |' ]7 z
2、getchar()只能接受一个字符
! A! O8 {2 D- l' g( Q' R格式输入输出:/ U8 n9 p7 C: Y8 r9 A; \
1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)) p) T- r  ~3 z& p, G' T5 o
2、scanf(格式控制,地址列表)
7 u( K2 F3 r% U. N3 E. h数组
( _" `# n9 ~% ^" Q& W一维数组的定义:类型说明符 数组名【常量表达式】;先定义后引用;一维数组初始化时可以只对一部分元素初始化,在对全部数组元素初始化的时候可以部规定长度;但是若被定义的数组长度与提供的初始值不一样时,则数组长度不能省略。
) ^+ Q& Q3 o. ]& z二维数组的定义:类型说明符 数组名【常量表达式】【常量表达式】C语言中存放二维数组是先存放第一行的元素,紧接着是第二行,其实也是以一维的方式存放。如果初始化时能指定所有元素的初始值,第一维大小可以省略,但是第二维不能省略。- Y5 o+ ]1 m, P) U
字符数组:定义和初始化跟数组差不多,只是需要加单引号。字符和字符串结束标志,C语言规定,以‘\0’代表。4 `+ D) O* F1 ^4 y  F
C的运算符有以下几种:3 R5 F& f0 E/ p  E1 |) z& U* L
1、算术运算符(+ - * / %)结合方向自左向右9 m: e4 w# X  q- `+ z) D& W
2、关系运算符(> < == >= <= !=)) y) ~* ^, c/ J% F; V8 J
3、逻辑运算符(! && ||)
4 P- C/ T# Y. d; L$ y& R4、位运算符(<< >> ~ | ^ &)3 v5 g% I" U6 G
5、赋值运算符(=及符号扩展赋值运算符)
3 L- X4 c& \/ A" s3 Z' E) x6、条件运算符(? : )
$ |7 m1 J* ^3 H) O4 L7、逗号运算符( , )
' V' v, M& W" T# m8、指针运算符(* &)
; Q. U2 B. B/ O5 b; Z. E( d( V! ^9、求字节运算符(sizeof)
8 N+ E; G' N1 Z" o10、强制类型转换运算符((类型))! X9 k! T: ]7 D* T' ^6 I- \
11、分量运算符( . ->)
# r; f0 i9 T1 R/ Z+ m4 z! b12、下标运算符([])
# q8 d+ n4 ~8 P- o) \8 r13、其他% J8 y. _* o& Y

: D; O% H0 C  N7 _8 G5 J' M( N% Z( b+ j8 }0 V* j4 ]3 K( \2 k7 ]! `' b
4 `% a' A2 Z+ P0 ?6 k* g
字符串处理函数:
$ \" v& p$ p0 }0 w- _1、puts()将一个字符串输出到终端
9 [- f0 Z- a/ V1 U2、gets()从终端输入一个字符串到字符数组,并且得到一个函数值。
0 J0 M3 D- I5 a6 {# o/ T. N3、strcat()链接两个字符数组中的字符串。
/ t8 N1 D5 E4 H4、strcpy()字符串复制函数。
, B5 g3 D$ Q. w4 d& S5、strcmp()比较字符串作用。( I  G3 t+ x( g
6、strlen()测试字符串长度的函数不包括“\0”
- Y; M3 y7 h' [2 Y9 o7、strlwr()将字符串中的大写字母转换为小写字母。/ v+ F" ~! j3 P( F- y- l- e* {
8、strupr()将字符串中的小写字母转换为大写字母。
7 i2 q' `2 M2 ]/ D. ?- U函数
. r; c. }8 t( v(1)一个源程序由多个函数组成。
9 I( a& i$ {$ Y, `9 t4 U  ~(2)C程序的执行从main()函数开始;
; \% g5 G3 l3 W% f, m" B(3)所有函数都是平行的;
  j: V% e7 Z! N- D(4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。, D6 l0 n7 p# v. ~, X& P
函数定义的一般形式:
4 {2 B6 g# G9 m3 F# T(1)类型标志符 函数名()3 B0 }, y$ j# Q+ C+ j
{7 ~/ `+ a2 ^# H  ~
声明部分
' V; f9 Y1 f' s语句$ l2 o+ v( _/ ?* q/ r1 F
}$ E0 q! b- K, G' }
(2)类型标志符 函数名(形式参数列表)
5 Z3 W5 [! j+ W  a2 }: n/ ]! p2 d{
: w  b; j1 B% s- H/ v声明部分
/ \" X4 @- \" l$ I% U& c语句
2 K3 E. b  ]% X+ S1 @}5 @, l+ e  u4 A1 Q; s+ |3 V1 K
局部变量和全局变量:
: I8 B+ G2 A; C3 {( e) B+ ^9 |(一)局部变量在一个函数内部定义的变量是内部变量,它只是在本函数范围内的有效,主函数也不能使用其它函数中定义的变量;不同函数中可以使用相同的名字的变量,他们代表不同的对象,互不干扰;形式参数也是局部变量;在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合句也可以称为“分程序”或“程序块”;
8 u  O; z0 Y' e; @+ F0 |9 \(二)全局变量,在函数之外定义的变量称为外部变量,全局变量可以增加函数间数据联系的渠道,一般不再必要时不要使用,他在程序的全部执行过程中占用存储单元,是函数的通用性,使用全局变量会使程序的清晰性降低。还要注意若果同一源文件中,外部变量和局部变量同名,则在局部变量作用范围内,外部变量被“屏蔽”,不起任何作用。  I; p0 A) |9 K  o: `0 o/ m
函数的返回值:1 ^  \1 d# m  Q9 y6 M9 j' g4 y0 }
希望通过函数调用使主调函数得到一个确定的值。(1)函数的返回值是通过函数中的return语句获取的。(2)函数值的类型;(3)如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。(4)如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。(5)如不需要带回任何值,用void。/ _$ L& Y3 y% S  q" B
函数的调用:. }5 v& C8 ^) |" k- P4 F
调用方式1、函数语句;2、函数表达式;3、函数参数。* Z( o# U% ^+ u4 V, V0 Q) Y7 T
被调用的函数的声明:1 F, Z; T9 A2 P8 J- ]# u& b
一个函数调用另一个函数所具备的条件:5 h& v7 T& A0 f  Y: j4 b0 Y
1、首先被调用的函数必须是已经存在的函数;. I- a' s5 U; Y9 \3 w2 j% Q2 @" }: I
2、如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。) K9 n4 u4 J, P4 c/ x+ x5 R% r9 r6 F
3、如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。1 ^7 I2 w# ~1 W1 X
4、如果被调用的函数定义出现在主调函数之前可以不必声明。: Q6 r9 F' R6 ]- U$ k. K9 u
5、如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明。
, R$ Y4 k* `% ~# z& T. T( v$ c9 M

该用户从未签到

2#
发表于 2022-8-22 11:05 | 只看该作者
谢谢分享,很好很棒

该用户从未签到

3#
发表于 2022-8-22 13:02 | 只看该作者
很好的东西,谢谢,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 07:25 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表