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

单片机C语言入门学习

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学。; ~9 D+ u  \9 m
结构化程序设计方法:" A& x% K- e# u3 f5 J
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。) T' U5 g/ M1 H3 N
最常见的数据类型,这是你必须要知道的:
" r+ j) `. j5 Q& b7 Q, ~1 k+ J2 o常量:常量包括字面常量、直接常量和符号常量;
; ]* P8 D1 a% x/ O* U: b变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义后使用;每一个变量被定义以确定类型后,在编译时就能为其分配相应的存储单元;
0 ^- |* s/ f( o) J4 N- c* }整数类型:整数常量有十进制、八进制和十六进制;“%d”
  i1 Z9 ]- l* _  @整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是-32768—32767,有符号型为0~65535.通常把long定义为32位,把short定义为16位,int可以是32位也可以为16位,这都主要取决于机器字长。5 a. \( @- `, f+ a0 Y" D
实型常量的表示方法:(1)十进制,0.0;(2)指数形式,123e3; Q6 M0 d' m3 T$ z$ t0 x7 x
实型变量:实数型数据在内存中的存放形式,一般在内存中占4个字节,分成整数部分和小数部分存放。实型变量分为float型、double型long double型。实型数据会存在舍入误差。  e$ a  k& s  g/ N" e- c/ j
实型常量的类型:C编译系统将实型常量作为双精度来处理。
+ y0 C1 h9 u. B' x; m7 E字符型数组:
$ m% }' D% E' f# p) V0 G(一)字符常量:转义字符(\n——换行,\t——tab,\r——回车,\f——换页,\b——退格,\ddd——1到3位8进制的数代表的字符)
* k: l0 T& [( w1 [: m( f) X8 u(二)字符变量:字符数据存储形式实际是以ASCII码存储。“%c”
" A& P9 K4 z0 H字符串常量:双撇号括起来的一系列字符序列。. B( c4 c3 ]5 t) U* P# }' n" _
算法结构:
  }2 f5 X+ `5 s% J& v, L, ]1 l一、顺序结构、选择结构、循环结构;二、循环结构又分为while型、until型、for循环结构;程序流程图;
$ r  Z2 M/ C2 @控制语句:$ P, _0 |& S" E  B/ h/ Z5 i
完成一定的控制功能。+ a  }  U3 N9 d# i3 Y+ \
1、if()~else~
$ V# z: W' Z6 {. B2、for()~
, F' D! U3 t3 Q( K3、while()~& k  g& V* o8 v4 B* s
4、do~while()9 D  ^' I# e: X7 _+ s0 N9 @8 M( T
5、continue" n% v' K# D- N4 o( J) z; V
6、break
, V3 O5 C7 g2 c) y7、switch3 H4 u) W6 z+ O- ^, G( t4 q
8、goto
3 z# s9 ~: l' P1 ]+ N* B9、return
! Q' d/ Y4 Q0 C" {% e3 H字符数据的输入输出:' K+ r% Z# D# V' \6 u7 s, a
1、putchar()输入字符变量
' V2 n. Q, m& y) H! T$ H; C. |+ N2、getchar()只能接受一个字符
& _5 q3 p% f( c1 ^格式输入输出:
/ ?7 e% F8 c7 f1 q7 b1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g); ]# j5 M6 Y% B1 h* r
2、scanf(格式控制,地址列表)7 x$ Q2 {7 V0 ]9 \1 B# ^3 H
数组7 V' Z) b! H% j- A2 v; T
一维数组的定义:类型说明符 数组名【常量表达式】;先定义后引用;一维数组初始化时可以只对一部分元素初始化,在对全部数组元素初始化的时候可以部规定长度;但是若被定义的数组长度与提供的初始值不一样时,则数组长度不能省略。$ I3 a8 [: K5 w3 B. k
二维数组的定义:类型说明符 数组名【常量表达式】【常量表达式】C语言中存放二维数组是先存放第一行的元素,紧接着是第二行,其实也是以一维的方式存放。如果初始化时能指定所有元素的初始值,第一维大小可以省略,但是第二维不能省略。
8 n6 b# t9 y  K5 E2 H/ {( K' H! A字符数组:定义和初始化跟数组差不多,只是需要加单引号。字符和字符串结束标志,C语言规定,以‘\0’代表。. c: H' Q( x/ S3 A7 ?( @
C的运算符有以下几种:
, a7 M6 X2 G. ?" {) \1、算术运算符(+ - * / %)结合方向自左向右1 T& T( G) ]" m) F/ {; L
2、关系运算符(> < == >= <= !=)
- b% G. O8 J3 y4 [$ H: i& c, ?# F3、逻辑运算符(! && ||)
, M! |; \  }9 M; c4、位运算符(<< >> ~ | ^ &)
" o3 x3 |$ w* ~) Z; K7 _/ t5、赋值运算符(=及符号扩展赋值运算符)- L# q7 o+ S, `6 w2 g8 V2 l
6、条件运算符(? : )
$ I# Y# R% I2 {; S0 A7、逗号运算符( , )2 R( [: l$ f" t+ C, _
8、指针运算符(* &)1 T. Y8 @) \1 F: O6 b* M8 Y
9、求字节运算符(sizeof)
9 c/ l5 C# ^" |; H$ i. V6 G10、强制类型转换运算符((类型))
* J, ~! y0 t, r. b11、分量运算符( . ->)
% N7 {4 Z: J7 i- ]* ]6 ^% W9 F* I12、下标运算符([])( t/ G6 `+ Q$ \3 d; j6 d* Y2 ^$ t: }
13、其他
6 G3 ?, V9 N5 d
% `0 t6 w2 M0 p& x! L, D5 [7 U0 ?6 ^% z

2 W; }! ~, d+ U) R6 r( J3 a& Y字符串处理函数:
6 W, |  S: r& N1 ~& L1、puts()将一个字符串输出到终端
9 S* Q- w7 ], }3 o2、gets()从终端输入一个字符串到字符数组,并且得到一个函数值。7 L! J0 m* {9 g
3、strcat()链接两个字符数组中的字符串。- @$ S  w+ L! n
4、strcpy()字符串复制函数。
0 v( e! ?& [$ S1 f% F! t5 ^5、strcmp()比较字符串作用。' Q7 N& m8 a- b$ E
6、strlen()测试字符串长度的函数不包括“\0”
9 q' c* }2 A* r, v- X' P$ m: W7、strlwr()将字符串中的大写字母转换为小写字母。
6 j5 I( O# ?9 w. k: u, x8、strupr()将字符串中的小写字母转换为大写字母。2 h( {' L/ D! _! w5 n
函数
# j6 |' d% E' e" d, W$ w(1)一个源程序由多个函数组成。
9 y; [. @4 Y. N6 J(2)C程序的执行从main()函数开始;* w( F# x7 H# [
(3)所有函数都是平行的;
0 R* \5 X8 S: a  Y& n(4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。
; T* y; N6 H' j函数定义的一般形式:
0 G1 f) x1 h( `' f% D/ w(1)类型标志符 函数名(); U( I( i5 V' q4 m
{
. D! t% y. s+ Q% F1 D+ L声明部分
- C9 y, E( t. e语句
2 e% \9 ]1 A; p/ [1 F}
4 j8 @+ d8 I0 F) w/ m1 O3 T; g(2)类型标志符 函数名(形式参数列表)
$ {; v* s* `, Q3 ?0 y; ]3 i. ?' p{
" N( i; _: I& D声明部分
9 u) ~; x8 k" F- Q; o语句
$ M1 K% e8 ^, v) L9 z}
0 S/ L: Q8 m+ R' a1 f' b局部变量和全局变量:! d3 U$ k0 M! B  b# X) U* h
(一)局部变量在一个函数内部定义的变量是内部变量,它只是在本函数范围内的有效,主函数也不能使用其它函数中定义的变量;不同函数中可以使用相同的名字的变量,他们代表不同的对象,互不干扰;形式参数也是局部变量;在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合句也可以称为“分程序”或“程序块”;
5 `- a$ g8 p7 {6 u/ q(二)全局变量,在函数之外定义的变量称为外部变量,全局变量可以增加函数间数据联系的渠道,一般不再必要时不要使用,他在程序的全部执行过程中占用存储单元,是函数的通用性,使用全局变量会使程序的清晰性降低。还要注意若果同一源文件中,外部变量和局部变量同名,则在局部变量作用范围内,外部变量被“屏蔽”,不起任何作用。, ?9 x0 D: @7 [5 w( r+ ?  a; g
函数的返回值:* c: s) J2 m, V' p( g1 ]
希望通过函数调用使主调函数得到一个确定的值。(1)函数的返回值是通过函数中的return语句获取的。(2)函数值的类型;(3)如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。(4)如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。(5)如不需要带回任何值,用void。2 H. t3 d6 M) ?7 B
函数的调用:, g7 s8 F. Z; R% M/ A
调用方式1、函数语句;2、函数表达式;3、函数参数。" I3 Y: g: L- t/ |9 A' N
被调用的函数的声明:
2 U  _+ Z. i3 v1 V# K" J/ ~一个函数调用另一个函数所具备的条件:* N/ l& X: M* |! h+ V
1、首先被调用的函数必须是已经存在的函数;' k1 o# \/ F; R+ Z
2、如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。
0 H. @2 h9 u5 h$ u" X8 d6 G: q3、如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。
+ ]" H. ?; c8 ]+ J/ }9 n4、如果被调用的函数定义出现在主调函数之前可以不必声明。
0 |. B& t3 @* `$ ^5、如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明。
8 n; w2 ~5 [  b: D9 u9 R2 B7 U

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-30 06:09 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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