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

单片机C语言入门学习

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学。# p" V0 a  j* P5 b$ ?
结构化程序设计方法:
0 m: L0 f/ t' K(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。6 M4 M9 b# c6 B! J8 K/ d' F1 e
最常见的数据类型,这是你必须要知道的:. G% S3 r; W( z% |; O
常量:常量包括字面常量、直接常量和符号常量;
& X9 ?( H5 w% a  m1 E% }6 r变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义后使用;每一个变量被定义以确定类型后,在编译时就能为其分配相应的存储单元;7 J. \& o0 e% h4 f# Z& r
整数类型:整数常量有十进制、八进制和十六进制;“%d”
  \+ z8 M. G) f: d# x0 {4 b6 S整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是-32768—32767,有符号型为0~65535.通常把long定义为32位,把short定义为16位,int可以是32位也可以为16位,这都主要取决于机器字长。
: Q$ Q+ \8 u. s9 ?实型常量的表示方法:(1)十进制,0.0;(2)指数形式,123e3
# ~( B5 G$ J1 Y6 [  v) q实型变量:实数型数据在内存中的存放形式,一般在内存中占4个字节,分成整数部分和小数部分存放。实型变量分为float型、double型long double型。实型数据会存在舍入误差。
8 [' i6 M" N$ q" Z6 a" a实型常量的类型:C编译系统将实型常量作为双精度来处理。8 V7 g. D- i9 ]3 @) d, w; q$ _
字符型数组:$ b& s& Y) b' X
(一)字符常量:转义字符(\n——换行,\t——tab,\r——回车,\f——换页,\b——退格,\ddd——1到3位8进制的数代表的字符)
# j" M  ]4 Y7 X8 x) f+ ^(二)字符变量:字符数据存储形式实际是以ASCII码存储。“%c”% {$ Y& R! b* o5 t
字符串常量:双撇号括起来的一系列字符序列。) |* t$ c+ _0 m8 }
算法结构:: a1 X: S$ e( r# n# g# v
一、顺序结构、选择结构、循环结构;二、循环结构又分为while型、until型、for循环结构;程序流程图;0 a" u6 z8 t  _. l( W3 G
控制语句:
! V0 X0 l; \8 B1 d9 h3 d5 G! b完成一定的控制功能。) \9 V) X& Q, ^$ Y+ }8 d+ \5 w
1、if()~else~4 A* ]/ {4 `% `* E3 Y
2、for()~. i% V7 K  l' O$ \, Q
3、while()~
& a, l0 y8 m9 x7 O/ u/ x- q) ]4、do~while()" w9 [8 F0 e3 h) q1 Y% S% F. J0 d
5、continue: J- u' k# b! n& n6 J+ k" M
6、break
: p1 h- f! s  l- m7、switch% Y  A. O5 M0 @: ]' G% z1 _
8、goto5 p7 \8 C2 R/ _7 J; v
9、return' L( X+ K4 d) w3 p
字符数据的输入输出:  h/ r$ M. R8 B* ?% z5 t# J  R
1、putchar()输入字符变量
7 h5 O- `0 e" g/ E5 @8 U2、getchar()只能接受一个字符
% ^. p. `8 E) s% g3 l格式输入输出:
. H9 J' Q6 @6 ^0 i) `1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)# S' N9 a: I& j( u: ?9 {) a
2、scanf(格式控制,地址列表)8 Q5 i+ C6 H& q; l! B- ?9 u: u
数组
( E: h- ~; X( h. @# R1 n% R4 S一维数组的定义:类型说明符 数组名【常量表达式】;先定义后引用;一维数组初始化时可以只对一部分元素初始化,在对全部数组元素初始化的时候可以部规定长度;但是若被定义的数组长度与提供的初始值不一样时,则数组长度不能省略。
; x& w: E0 V7 K5 o5 k) ?二维数组的定义:类型说明符 数组名【常量表达式】【常量表达式】C语言中存放二维数组是先存放第一行的元素,紧接着是第二行,其实也是以一维的方式存放。如果初始化时能指定所有元素的初始值,第一维大小可以省略,但是第二维不能省略。
* P) r1 n3 u6 s; y, S$ f字符数组:定义和初始化跟数组差不多,只是需要加单引号。字符和字符串结束标志,C语言规定,以‘\0’代表。
2 N& s# y% z2 q4 M( M8 {" }7 YC的运算符有以下几种:
. |+ l1 J- p4 p+ K1、算术运算符(+ - * / %)结合方向自左向右
2 X$ U5 E; C" C; f" r2、关系运算符(> < == >= <= !=)
' E/ H  @, Z# _& ]3、逻辑运算符(! && ||)
8 d8 Q/ C' Q" Q8 j7 Z4 w7 _( `4、位运算符(<< >> ~ | ^ &)
, }/ L& P. s9 O* M5、赋值运算符(=及符号扩展赋值运算符)+ E2 K- z' H6 I! y9 x! C
6、条件运算符(? : )
! T9 l3 v+ u* ]% |" i7、逗号运算符( , )1 ?0 m+ V; S' c% a8 n: x
8、指针运算符(* &)6 k+ k( A1 W6 v
9、求字节运算符(sizeof): p/ E$ m! `- l" p+ [! d
10、强制类型转换运算符((类型))
, k1 F+ A3 {! |" D11、分量运算符( . ->)
2 l$ `: p" _. `, r4 d, N5 T# j12、下标运算符([])1 T5 N& W5 P$ N" r
13、其他; \# z; F6 ]/ e5 x& s9 T
4 F9 }1 i$ _  k2 W$ ^
9 B- J# S, V5 n- e# q0 h( ]& g/ j

/ I, H7 ^- y# i: W( }字符串处理函数:8 g! M) N' _4 ]- J: w
1、puts()将一个字符串输出到终端7 A7 {% h1 J0 N0 ^0 ^
2、gets()从终端输入一个字符串到字符数组,并且得到一个函数值。8 i9 `8 S8 ?6 L( N) \4 A
3、strcat()链接两个字符数组中的字符串。
7 e5 ?" A1 f9 C4、strcpy()字符串复制函数。
) u( }% J% e% ~; |5、strcmp()比较字符串作用。
' M. l  u) O4 |' g; ]( w4 p6、strlen()测试字符串长度的函数不包括“\0”
6 @0 F/ g# ^' n3 \: \' K: H! {& E7、strlwr()将字符串中的大写字母转换为小写字母。
! W+ ^6 t1 z1 K. E8、strupr()将字符串中的小写字母转换为大写字母。* B$ U( [3 ]& u& Y# u2 x
函数
; b2 q3 y" H% P2 g9 Q(1)一个源程序由多个函数组成。6 k  j- n8 y8 g0 @3 \* |
(2)C程序的执行从main()函数开始;
# L) M4 i. y8 O(3)所有函数都是平行的;
  n  h) d, U( R5 P9 d# F(4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。
) r7 V$ G1 D+ R4 w1 b# ^' E) O6 G  Y函数定义的一般形式:) X# K2 A( N2 K1 }- u7 r
(1)类型标志符 函数名()7 H# {" O# d* @% L
{
: v* g1 t: W, I' i声明部分
! Z7 D2 M" {- }3 z8 z& l# I3 f语句$ V# e, u( z' }. F2 ~0 J2 j( V5 {
}
% M: [# n6 r. u(2)类型标志符 函数名(形式参数列表)
1 ?/ ]7 q" z5 e/ h) p9 |{& |3 _. ?: d+ o. x
声明部分
3 U0 x& ]5 k8 ?. L  g语句, f3 p5 R# z. X! B% T/ f" p
}+ T% f! W: m4 }* h/ O
局部变量和全局变量:
. G; L9 w: J4 F(一)局部变量在一个函数内部定义的变量是内部变量,它只是在本函数范围内的有效,主函数也不能使用其它函数中定义的变量;不同函数中可以使用相同的名字的变量,他们代表不同的对象,互不干扰;形式参数也是局部变量;在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合句也可以称为“分程序”或“程序块”;# o0 \  j+ b! {" {
(二)全局变量,在函数之外定义的变量称为外部变量,全局变量可以增加函数间数据联系的渠道,一般不再必要时不要使用,他在程序的全部执行过程中占用存储单元,是函数的通用性,使用全局变量会使程序的清晰性降低。还要注意若果同一源文件中,外部变量和局部变量同名,则在局部变量作用范围内,外部变量被“屏蔽”,不起任何作用。$ y& `# n- S0 P' U! K
函数的返回值:
" o7 o# c0 g4 T2 v希望通过函数调用使主调函数得到一个确定的值。(1)函数的返回值是通过函数中的return语句获取的。(2)函数值的类型;(3)如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。(4)如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。(5)如不需要带回任何值,用void。
" g+ y: P( i! M0 C, q) G) d; j函数的调用:, Y. y& b; I6 b* X6 `
调用方式1、函数语句;2、函数表达式;3、函数参数。% W5 W: ]- P- s; _. c# D* ^8 C
被调用的函数的声明:
6 h5 v5 }- x: c" J一个函数调用另一个函数所具备的条件:4 @$ [; b3 n8 W& m
1、首先被调用的函数必须是已经存在的函数;
. y6 y1 \/ x1 y3 F" V2 A" n2、如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。1 c6 |# X6 B6 f, H  @
3、如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。, i/ g) ^  R1 Q7 p( M# f1 z9 t
4、如果被调用的函数定义出现在主调函数之前可以不必声明。
3 @% ^/ l; O' }4 z: p5、如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明。9 M( h" {, k! c( ]6 L. m

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-3 14:16 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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