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

单片机C语言入门学习

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学。
& w3 k( u% \3 L8 m结构化程序设计方法:: `5 B2 L7 M. i/ b: i
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。* q6 `! x1 r8 D( I
最常见的数据类型,这是你必须要知道的:! j2 _- v7 j! n9 r
常量:常量包括字面常量、直接常量和符号常量;- T8 V) j+ [7 z% c  W! l8 ~
变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义后使用;每一个变量被定义以确定类型后,在编译时就能为其分配相应的存储单元;: K6 ]$ R! ]* p
整数类型:整数常量有十进制、八进制和十六进制;“%d”
- ^+ W/ Q# A/ X) w% W整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是-32768—32767,有符号型为0~65535.通常把long定义为32位,把short定义为16位,int可以是32位也可以为16位,这都主要取决于机器字长。3 s+ J/ F, x4 |5 _8 {6 f
实型常量的表示方法:(1)十进制,0.0;(2)指数形式,123e3
% Q& L, C6 R* M实型变量:实数型数据在内存中的存放形式,一般在内存中占4个字节,分成整数部分和小数部分存放。实型变量分为float型、double型long double型。实型数据会存在舍入误差。
* T1 ?0 i3 Z/ Q0 F2 N实型常量的类型:C编译系统将实型常量作为双精度来处理。; c; d3 g1 M; Q$ \  E' w0 p
字符型数组:0 ]( \% p( o: a7 Y
(一)字符常量:转义字符(\n——换行,\t——tab,\r——回车,\f——换页,\b——退格,\ddd——1到3位8进制的数代表的字符)
; P5 K8 L& ^( v1 y/ q, n- j(二)字符变量:字符数据存储形式实际是以ASCII码存储。“%c”, X) e; m/ \/ Q3 K
字符串常量:双撇号括起来的一系列字符序列。! w' K+ M6 e; d+ d/ ]8 n
算法结构:" F* Y  j7 K8 ^5 Y. h
一、顺序结构、选择结构、循环结构;二、循环结构又分为while型、until型、for循环结构;程序流程图;
* D) q; w' k  C6 o4 {控制语句:
0 c7 g! S1 C; y完成一定的控制功能。
1 i" l4 O& }: G& U1、if()~else~
, H6 U7 L( n$ Q7 m6 V% G2、for()~  |3 K% @& v9 a( O& Z
3、while()~' P% m. X8 e3 f. @8 ]
4、do~while(): {$ ]7 e9 ?; H, o: L6 {9 c
5、continue
5 ~* o3 J2 {5 H! ]6、break2 C4 ?& y# Z& `1 |; p6 y/ t
7、switch0 f: u6 W3 H8 c; E9 M
8、goto& n; C* o/ i8 u9 H
9、return
) l) d; F- A8 l9 P0 d字符数据的输入输出:/ {" V6 h1 V7 T2 g- |" p
1、putchar()输入字符变量
$ F: c- L& q, f3 i8 |2、getchar()只能接受一个字符' n6 s9 V; P: N" B7 r
格式输入输出:- r! R% V* k/ q* e$ e) m" k) t- w7 o. Y
1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)* l, G, `3 T+ D$ ?0 E1 M& J! H
2、scanf(格式控制,地址列表)
% p8 z, V2 A' o, R. o- Q数组( l8 t" P( ]  {/ v0 H; U5 ]& W
一维数组的定义:类型说明符 数组名【常量表达式】;先定义后引用;一维数组初始化时可以只对一部分元素初始化,在对全部数组元素初始化的时候可以部规定长度;但是若被定义的数组长度与提供的初始值不一样时,则数组长度不能省略。
% ^1 S) _& a4 M& v# U2 b二维数组的定义:类型说明符 数组名【常量表达式】【常量表达式】C语言中存放二维数组是先存放第一行的元素,紧接着是第二行,其实也是以一维的方式存放。如果初始化时能指定所有元素的初始值,第一维大小可以省略,但是第二维不能省略。
+ F. J8 }8 \5 i$ ?. M4 f% n字符数组:定义和初始化跟数组差不多,只是需要加单引号。字符和字符串结束标志,C语言规定,以‘\0’代表。
( r4 A$ y& C- R5 M5 H! kC的运算符有以下几种:
5 k% q( @0 h4 u5 m/ |! T1、算术运算符(+ - * / %)结合方向自左向右
/ |! g( K1 B0 A& j/ A3 V2、关系运算符(> < == >= <= !=)
3 N2 T( y5 E% @* l1 B9 d2 i3、逻辑运算符(! && ||)
3 i% m% P4 ^* q/ \# w4、位运算符(<< >> ~ | ^ &)
' q" A6 z  N2 t! \8 e7 ^5、赋值运算符(=及符号扩展赋值运算符)1 }" L4 w2 G" z
6、条件运算符(? : )  L+ H* V3 g# T* h
7、逗号运算符( , )
6 {8 g* |+ q" d2 O) P9 i8、指针运算符(* &)) V4 v6 i; `6 l3 d) W& ]/ l
9、求字节运算符(sizeof)
3 B, A' ]7 s! t3 r5 d( u  {10、强制类型转换运算符((类型))
1 |- W* L9 Y8 z$ s11、分量运算符( . ->)
% W  [" ~0 f! e4 Z' ]& o  h12、下标运算符([])
6 H. j/ H. y  a" X13、其他
$ m' z8 L* z1 X) E2 l1 w' [5 r+ Q  t- S

; _: c' v& n/ K, f6 t3 g! F! x4 r$ H) S; ^
字符串处理函数:
" n3 c5 y2 X7 Y$ _& P0 s: m9 f& F2 |, |1、puts()将一个字符串输出到终端7 t5 I* E' l2 T% v
2、gets()从终端输入一个字符串到字符数组,并且得到一个函数值。) g) O) M0 ?/ Z  @& C3 G5 }
3、strcat()链接两个字符数组中的字符串。
- H! Y. b7 d6 h0 c+ y9 h( J4、strcpy()字符串复制函数。
4 N. B* s4 P; l, I5、strcmp()比较字符串作用。
2 f4 i: [9 x/ L/ X" {6、strlen()测试字符串长度的函数不包括“\0”
% N9 c5 l/ k0 e7、strlwr()将字符串中的大写字母转换为小写字母。
; ~+ a. o- I( _% P, Q8、strupr()将字符串中的小写字母转换为大写字母。
% `+ L# S7 {# f# W2 t3 b- E. H函数4 N; k9 D* {) Q6 ]1 N6 Y
(1)一个源程序由多个函数组成。
* A, f4 z8 i& W4 E' B# V(2)C程序的执行从main()函数开始;5 a4 O2 o# P" D, a. R
(3)所有函数都是平行的;* J& V2 M) ?  E+ {( f
(4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。/ [( V# d. Z8 m0 J
函数定义的一般形式:4 d! L2 d, j  w& y& v9 y% ~' k
(1)类型标志符 函数名()5 P  W7 L6 Q, C9 G. v# q
{9 q- ~7 E. r: z. d
声明部分- |8 g" e& j0 E: ~6 w' Y# ?' P/ C$ h
语句; G& H' {; Y% P( B- E1 G4 D
}
+ b1 D4 K6 E+ Q+ H% R& ~# W2 x9 W(2)类型标志符 函数名(形式参数列表)
( [. @" Z+ |0 h' E' k( Y# _# N{( _+ V5 X4 S, \) f
声明部分  T! P3 n3 i1 }, _, [
语句
" I$ n4 i# k7 ]. F8 L}4 d8 d+ S! l0 f0 L
局部变量和全局变量:: Q/ ?3 a  M: [- q( k
(一)局部变量在一个函数内部定义的变量是内部变量,它只是在本函数范围内的有效,主函数也不能使用其它函数中定义的变量;不同函数中可以使用相同的名字的变量,他们代表不同的对象,互不干扰;形式参数也是局部变量;在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合句也可以称为“分程序”或“程序块”;
% U. t9 S; Y% V; ?( X7 I(二)全局变量,在函数之外定义的变量称为外部变量,全局变量可以增加函数间数据联系的渠道,一般不再必要时不要使用,他在程序的全部执行过程中占用存储单元,是函数的通用性,使用全局变量会使程序的清晰性降低。还要注意若果同一源文件中,外部变量和局部变量同名,则在局部变量作用范围内,外部变量被“屏蔽”,不起任何作用。
- i1 s! W: ?5 ]* U' Q& Y函数的返回值:9 ?, z, f# E9 m0 c6 g0 [& s
希望通过函数调用使主调函数得到一个确定的值。(1)函数的返回值是通过函数中的return语句获取的。(2)函数值的类型;(3)如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。(4)如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。(5)如不需要带回任何值,用void。3 E3 h- e3 M/ t' h- F2 g& E" f6 Y; b
函数的调用:
0 r2 ^7 Y+ P- g  M; R调用方式1、函数语句;2、函数表达式;3、函数参数。
2 W& h" D( n4 I/ n" l. y" J4 D被调用的函数的声明:
+ ?6 l3 ~6 Z" `一个函数调用另一个函数所具备的条件:
( K# J+ d' U! q& d1、首先被调用的函数必须是已经存在的函数;
" i6 ?* x, F4 p, k% E! N  c' y2、如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。
" C! n1 a6 D5 T* U( M3、如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。" X! b  n' z6 [* ]4 Q6 g
4、如果被调用的函数定义出现在主调函数之前可以不必声明。
& ?; w/ x% u' M7 ~" C5、如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明。- s$ [2 O- W/ d- k& n6 }9 }

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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