|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学。
, v* |* U$ m6 @3 x1 d5 F2 ^结构化程序设计方法:# h. a5 Y( I6 G; D
(1)自顶向下;(2)逐步细化;(3)模块化设计;(4)结构化编码。# J7 a- r4 A! p& D+ z/ C4 o
最常见的数据类型,这是你必须要知道的:; W# g3 N) E) h) E4 i8 C1 s
常量:常量包括字面常量、直接常量和符号常量;1 h" k8 ?! n5 G! n! D) x) q
变量:C语言规定标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或者下划线;必须压迫先定义后使用;每一个变量被定义以确定类型后,在编译时就能为其分配相应的存储单元;4 K7 n/ w8 Q. O( Z; |
整数类型:整数常量有十进制、八进制和十六进制;“%d”
, U) [# r# V% x1 P5 x7 a" l2 y8 L整形变量:数据在内存中存放形式是以二进制形式存放;有int型、short int型和long int型,无符号整型变量的范围是-32768—32767,有符号型为0~65535.通常把long定义为32位,把short定义为16位,int可以是32位也可以为16位,这都主要取决于机器字长。
9 r; i9 M6 m0 a8 ^3 [, z0 H |3 \实型常量的表示方法:(1)十进制,0.0;(2)指数形式,123e37 w1 C0 H/ D7 @" r7 ^
实型变量:实数型数据在内存中的存放形式,一般在内存中占4个字节,分成整数部分和小数部分存放。实型变量分为float型、double型long double型。实型数据会存在舍入误差。" V. H- V( R2 K
实型常量的类型:C编译系统将实型常量作为双精度来处理。
! ^( N& F$ S2 q. {字符型数组:
( @1 ^, n* L! t% o# I# m(一)字符常量:转义字符(\n——换行,\t——tab,\r——回车,\f——换页,\b——退格,\ddd——1到3位8进制的数代表的字符)
& O3 N) g4 x- p. J- N7 [- v(二)字符变量:字符数据存储形式实际是以ASCII码存储。“%c”% Y1 O7 x9 Y% D2 t
字符串常量:双撇号括起来的一系列字符序列。+ s; D" q& q) ]
算法结构:
* v. l9 Z2 Y) {. ^( F! C* T一、顺序结构、选择结构、循环结构;二、循环结构又分为while型、until型、for循环结构;程序流程图;
- q% G/ x) {# V, g控制语句:. U! l! O! \' Z' [7 ~/ y# F! d0 x
完成一定的控制功能。( N3 n9 Y& r* q J9 ]8 n9 F
1、if()~else~: f- J q- c. g% r7 X$ Q: c
2、for()~& g6 Y* p- ~2 z( V
3、while()~
/ d4 I; I; K+ I( v8 O! ~4、do~while()
8 V5 |5 ^4 r" G) v. U5、continue6 ~3 I) y w9 E% o+ S1 ^
6、break, X4 O, M, j3 X& o
7、switch
" l& Q+ F3 @" {8、goto+ Y0 N6 i- h3 g- ]* T
9、return
9 _' g2 q! W+ f8 ]字符数据的输入输出:
* W# T: m+ N3 X/ ]1、putchar()输入字符变量
. y0 T* G( n3 ?+ m, m8 E/ o4 X2、getchar()只能接受一个字符
* X/ o; y( ]% O& Y格式输入输出:
3 k0 E/ r4 L6 u/ d; P, q1、printf(%d—整型,%c—字符型,%ld,%md,%o,%u,%s,%-m.nf,%e,%g)
" C0 A; K7 _/ F, c! d8 K+ X2、scanf(格式控制,地址列表)
$ n2 Y" a% z- a" T: a. p数组% ~1 A F3 X! O+ l( ]7 }
一维数组的定义:类型说明符 数组名【常量表达式】;先定义后引用;一维数组初始化时可以只对一部分元素初始化,在对全部数组元素初始化的时候可以部规定长度;但是若被定义的数组长度与提供的初始值不一样时,则数组长度不能省略。: ` l6 }0 z( A* G
二维数组的定义:类型说明符 数组名【常量表达式】【常量表达式】C语言中存放二维数组是先存放第一行的元素,紧接着是第二行,其实也是以一维的方式存放。如果初始化时能指定所有元素的初始值,第一维大小可以省略,但是第二维不能省略。8 j% [5 q. e1 X( J
字符数组:定义和初始化跟数组差不多,只是需要加单引号。字符和字符串结束标志,C语言规定,以‘\0’代表。( z9 ^, M( A2 ~0 J+ E. o2 `
C的运算符有以下几种:# M4 H8 W( A; L. x" t! S- |8 h
1、算术运算符(+ - * / %)结合方向自左向右/ c$ c3 F# w' q7 d1 {
2、关系运算符(> < == >= <= !=)
" V$ B! I3 z) w/ ]2 Z3、逻辑运算符(! && ||)
" Y8 G+ A% K: v5 t0 O4、位运算符(<< >> ~ | ^ &)
. g* D$ y# x! Z5 b, @0 d0 ]6 Z5、赋值运算符(=及符号扩展赋值运算符)
; G, p& j9 B" ]! [; p6、条件运算符(? : )
* }0 B" J: T; k8 U* o7、逗号运算符( , )
. ?# \& |$ G# i8 T7 {, h* J- D8、指针运算符(* &)# W! |8 z: U5 c+ h) x0 v
9、求字节运算符(sizeof)
4 l5 L8 x/ n$ D/ x( V0 H10、强制类型转换运算符((类型))6 v7 I. a" t2 H; ^# L& g
11、分量运算符( . ->)
% U( ^4 z1 K" ^0 ]2 `! k% R12、下标运算符([])
: i0 e/ O1 {) s2 }$ J; d13、其他
8 ^9 J) J. r0 `, \: h- Y" E& a8 x0 w: k( |- [* v( [$ t$ Y1 T$ ?
5 ]! V5 J( |; R7 {8 \/ D2 D' \: h/ v2 c& Q5 ~
字符串处理函数:
/ u" x X) @4 \ E. t: f8 w1、puts()将一个字符串输出到终端$ \ J6 k! u$ f! Q# x
2、gets()从终端输入一个字符串到字符数组,并且得到一个函数值。# I9 X& J! v: ~* N$ z# y
3、strcat()链接两个字符数组中的字符串。
$ m% `5 {( y4 s' p/ E( i) Y. f6 g4、strcpy()字符串复制函数。7 m5 d# d9 K% j0 I$ t
5、strcmp()比较字符串作用。
# ~$ \! j2 V2 u: h6、strlen()测试字符串长度的函数不包括“\0”
! d' Y& H7 s' t) b% a. d; Y* T7、strlwr()将字符串中的大写字母转换为小写字母。
" m7 C( `! h0 R6 ^8、strupr()将字符串中的小写字母转换为大写字母。) h0 X6 o" C" a
函数
8 B5 j4 j6 N$ r7 m6 }) Q(1)一个源程序由多个函数组成。4 A- I+ X8 |6 u- n
(2)C程序的执行从main()函数开始;" w& W+ [& D1 |* G, [
(3)所有函数都是平行的;4 ^( {# X- v" z- f: }9 R% y
(4)函数分类;可以分为标准和自定义,还可以分为有参函数和无参函数。
p! V; Q. Z) F1 b" O/ m函数定义的一般形式:
$ O% L6 c3 A! W7 l(1)类型标志符 函数名()5 |. _$ {" N- i& ^2 c
{
% B/ X9 d* I9 ]+ s, Z' r声明部分. ~( W9 r: x7 ` }$ V i2 f
语句! [: l8 N4 Q) L2 \: y
}# N. R' g# A U
(2)类型标志符 函数名(形式参数列表)7 g6 K% g: i2 Q# W) M9 A |$ C
{/ u9 c1 @# m0 o( B D
声明部分* Z$ ^5 |2 \- u% D) A# R0 \' o
语句
" Y: o; S0 f+ _; G- ^, {) l}; K0 X/ p. O' N N, U
局部变量和全局变量:
! N! a- {" r, Q(一)局部变量在一个函数内部定义的变量是内部变量,它只是在本函数范围内的有效,主函数也不能使用其它函数中定义的变量;不同函数中可以使用相同的名字的变量,他们代表不同的对象,互不干扰;形式参数也是局部变量;在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合句也可以称为“分程序”或“程序块”;
`3 z L o ~% |& B7 y! _1 y(二)全局变量,在函数之外定义的变量称为外部变量,全局变量可以增加函数间数据联系的渠道,一般不再必要时不要使用,他在程序的全部执行过程中占用存储单元,是函数的通用性,使用全局变量会使程序的清晰性降低。还要注意若果同一源文件中,外部变量和局部变量同名,则在局部变量作用范围内,外部变量被“屏蔽”,不起任何作用。
1 n' _- g/ Q' i/ ?函数的返回值:' a# N: P; j/ L- ^ Q
希望通过函数调用使主调函数得到一个确定的值。(1)函数的返回值是通过函数中的return语句获取的。(2)函数值的类型;(3)如果函数值的类型和return语句中表达式的值不一样,则以函数类型为准。(4)如果调用函数中没有return语句,并不带回一个确定的用户需要的值,函数不是不带回值,而只是不带回有用的值,带回一个不确定的值。(5)如不需要带回任何值,用void。
/ p5 p: y% G6 A- u Y8 S+ {6 z' A函数的调用:
) j5 z) E3 K; G V* d9 C调用方式1、函数语句;2、函数表达式;3、函数参数。1 ], R! F7 W/ |
被调用的函数的声明:
" Q4 F2 O$ N6 V" E: f一个函数调用另一个函数所具备的条件:( ^- z9 k$ Q, }) R9 ?9 _ Y. _' m' [
1、首先被调用的函数必须是已经存在的函数;
# K6 D8 y+ K# Z" M2、如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。
* L2 ~1 G# d2 o# j% P5 [3、如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。
* B" I" k& z( E4 p# ]% T4、如果被调用的函数定义出现在主调函数之前可以不必声明。
0 _/ i+ j. M' ^: Z: H) B5 ~& m( }5、如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明。
5 j C) |; _$ K) z6 Y |
|