当前位置:首页 > 黑客业务 > 正文内容

c语言代码基础知识(c语言的基础代码有哪些)

hacker2年前 (2022-06-01)黑客业务84
本文导读目录:

C语言最最最基础的知识

C语言简介

作者:欧索软件

C语言是目前世界上流行、使用最广泛的高级程序设计语言之一。

C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它是数值计算的高级语言。

常用编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Turbo C,等等......

一、C语言的发展历史

C语言的发展颇为有趣。它的原型ALGOL 60语言。

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。

而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,

成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。

二、C语言的特点

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

2. 运算符丰富

C的运算符包含的范围很广泛,共有13种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5. C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

8. C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型

三.C语言的标准

目前主要的C语言规范有c89(c90), c95(94)和c99。C89是最早的C语言规范,于89年提出,90年先由美国国家标准局推出ANSI版本,后来被接纳为ISO国际标准 (ISO/IEC 9899:1990),因而有时也称为c90。但在94和96年分别对c90进行了两次错误修正,gcc支持的是修正后的c89(90)版本的C语言规范。在95年提出过对90版规范的修订案,称为 C95或者AMD1。gcc也支持c95规范。最新的一次C规范修订在99年制定(ISO/IEC 9899:1999),即常称的C99规范。在2001年对C99的错误进行了修正,gcc支持的修正后的c99规范,但是到目前为止,gcc还没有完成对c99规范的完全支持。

关于C99标准的一些介绍可以参看下面的网址:

http://www.chinaaspx.com/archive/develop/14050.htm

C语言怎么零基础学?

C语言怎么学

1、多看代码

在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据结构。

毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。

2、要自己动手

编程序是个实干的活,光说不练不行。刚开始学的时候可以多练习书上的习题。 对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。 自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一点小游戏,文曲星之类的电子词典上小游戏很多,照着编作为练习。基础很扎实的时候,可以编一些关于数据结构方面的东西,诸如最经典的学生管理系统。之后.....学汇编、硬件知识。

3、选择一个好的编译器 VS2010以上版本

4、关于养成良好的编程习惯

C语言入门知识

C语言基础知识

1.1 C语言简介

C语言于1972年由美国的Dennis Ritchie发明,并首次在配备了UNIX操作系统的DEC PDP-11计算机上实现。它由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来。1970年,ATT贝尔实验室的Ken Thompson根据BCPL语言设计出了较先进并取名为B的语言,通过不断修改、完善,更先进的C语言问世了。

C语言是一种功能强大、应用广泛、具有发展前途的计算机语言。它既可用于系统软件的设计,也可用于应用软件的开发。许多著名的系统软件都是由C语言编写的。C语言具有下列特点:

(1)C语言既具有低级语言直接操纵硬件的特点,又具有高级语言与 自然语言和人的思维逻辑相似的特点,C语言程序易编写、易查错,而且实用性很强。

(2)C语言具有丰富的数据类型和运算符,语法结构简单。

(3)C语言是一种结构化程序设计语言,提供了完整的程序控制语句。

(4)C语言是一种模块化程序设计语言,适合大型软件的开发和研制。

(5)C语言还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型,其程序移植性好。

1.2 C语言的数据类型

数据是程序处理的对象,数据类型是数据的内在表现形式。例如,学生的年龄和成绩具有一般数值的特点,在C语言中称为数值型,其中年龄是整数,称为整型;成绩可以为小数,称为实型。而学生的姓名和性别是文字,在C语言中称为字符型数据。

C语言具有丰富的数据类型,其中基本的数据类型有整型、实型、字符型。

1.2.1 变量

变量是在程序执行过程中其值可以被改变的量。

1.变量命名规则

和人的取名一样,变量的命名也有一定的规则。

(1)由字母、数字和下划线组成;

(2)必须以字母或下划线打头;

(3)字母区分大小写(在系统默认状态下);

(4)前32个字符有效(在系统默认状态下)。

例如:a,Book,book,_Make_Cipher都是合法的变量名,且Book与book是不同的变量名,而123A,x+y都不是变量名。

2.变量的数据类型

变量可以是任意的一种数据类型,如整型变量、字符型变量、指针变量等。C语言中的基本数据类型及其特性如表1-1所示。

表1-1 C语言的基本数据类型

数据类型名 数据类型描述 数据类型的长度(字节) 数据取值范围

char 字符型 1 0~255

int 有符号整型 2 –32 768~32 767

unsigned int 无符号整型 2 0~65 535

short 短整型 2 –32 768~32 767

long 长整型 4 –2 147 483 648~2 147 483 647

unsigned long 无符号长整型 4 0~4 294 967 295

float 单精度实数 4 |3.4×10–38|~|3.4×1038|

double 双精度实数 8 |1.7×10–308|~|1.7×10308|

long double 长双精度实数 10 |3.4×10–4932|~|3.4×104932|

3.变量的定义

每个变量在使用前都必须先定义其数据类型,定义变量数据类型的语法格式如下:

数据类型符 变量名1,变量名2,…;

例如:

int age,score; /* 定义年龄和成绩为整型 */

char name[20]; /* 定义姓名为至多含20个字符的字符数组 */

4.变量的存储类型

当定义某个变量时,C语言的编译系统就要给该变量分配若干个存储单元用来存放该变量的值。而在计算机中寄存器和内存都可以存放数据,内存又可分为临时占用和长期占用。变量的存储类型是指变量在计算机中的存放位置及时间。

定义变量存储类型的语法格式如下:

存储类型符 数据类型符 变量名1,变量名2,…;

变量的存储类型有自动型(auto)、寄存器型(register)、静态型(static)和外部型(extern),具体特点和使用方法在后面的章节中详细介绍。

在变量定义时,如未说明存储类型,则系统默认为自动型(auto)。

5.变量的初始化

变量的初始化是给变量赋初值的一种方法,是指在变量定义时就给变量赋予初始值。变量初始化的方法很简单,在变量定义的语句中,在变量名后加一个等号和初值即可。

例如:

int x, age=20, score=100;

在上面的定义中,变量x未赋初值,而变量age和score的初值分别为20和100。

在程序中,变量未赋值之前不允许使用,即要遵循“先赋值后使用”的规则。

1.2.2 常量

常量是在程序运行过程中值不发生改变的数据。例如,圆周率3.1415926就是一个常量。常量也有数据类型,它们是整型常量、实型常量、字符常量、字符串常量及符号常量,整型常量及实型常量的数据长度及取值范围与变量的规定相同。

1.整型常量

整型常量用来表示整数,整型数据可以以不同数制形式来表示,不同的进位制有其不同的表示方式,其表示方式如表1-2所示。

表1-2 整型常量的表示方式

数 制 表 示 方 式 示 例

十进制 一般整数的写法 0,–22,55

八进制 在八进制整数前加数字0 00,–072,+0331

十六进制 在十六进制整数前加数字0和字母x 0x0,0x1B5,–0xb3

另外,对于长整型常量,应当在其后加后缀L或l,例如30L。30L和30数值一样,但占用内存的大小不一样。30占用2个字节的存储空间,而30L占用4个字节的存储空间。

2.实型常量

实型常量只有十进制数表示方式,它没有单精度和双精度之分。其表示方式有定点数表示和浮点数表示两种。具体表示方式如表1-3所示。

表1-3 实型常量的书写方法

类 别 表 示 方 式 示 例

定点数 整数部分.小数部分 0.0,1.34,–34.0

浮点数 尾数E(或e)指数 3.57E10,–5.6e–9

说明:

(1)浮点数表示方式相当于数学中的科学计数法,其换算公式如下:

尾数E(或e)指数=尾数×10指数

(2)浮点数中的指数部分只能是整型数,尾数可以大于或等于10。

3.字符常量

字符常量是用两个单引号引住单个字符来表示的。例如:'A'、'*'、'!'等。使用字符常量时应注意以下几点:

(1)空格也是字符,表示为'a'。

(2)单引号中必须恰好有一个字符,不能空缺。如' '是错误的字符常量。

在C语言中有一类特殊的字符常量,被称为转义字符。它们用来表示特殊符号或键盘上的控制代码,常见的转义字符如表1-4所示。

表1-4 常用转义字符表

转 义 字 符 意 义 转 义 字 符 意 义

\n 回车换行符 \a 响铃

\t 水平制表符 \" 双引号

\v 垂直制表符 \' 单引号

\b 左退一格 \\ 反斜杠

\r 回车符 \ddd 1~3位八进制数ddd对应的字符

\f 换页符 \xhh 1~2位十六进制数hh对应的字符

4.字符串常量

字符串是用双引号引住的若干个字符。例如,"hello!","485769","a"。

字符串可以不含任何字符,称为空串,表示为""。

字符串中所含的字符个数称为字符串的长度。例如,"abc123","3",""的长度分别为6,1,0。计算字符串长度时应注意以下几点:

(1)对于含有转义字符的字符串,应将转义字符计算为1个字符。例如,"abc\\12\n"的长度为7,而不是9;"abc\\\12\n"及"abc\\\123\n"的长度均为6。

(2)在字符串中,反斜杠表示转义字符的开始,如果其后面没有表1-4中所列出的转义符号,则该反斜杠被忽略,并不参与计算长度。例如,"\A"的长度为1,但"\"是非法的。

5.符号常量

上面所介绍的常量都是具体数据,在程序中也可以用特定符号来表示某个常量,这个符号被称为符号常量。

符号常量的语法格式如下:

#define 符号常量名 常量

例如:

#define PI 3.1415926

经过上述定义后,可以在程序中使用PI来代替3.1415926。

在程序中使用符号常量有两个好处:一是提高了程序的易读性;二是为修改程序提供了方便。例如,当不需要太高精度时,只需要将符号常量定义修改为

#define PI 3.14

而不需要在程序中去修改每一处的圆周率。

1.3 算术运算符与算术表达式

用来表示各种运算的符号称为运算符。C语言中包括以下七大类的基本运算符:算术运算符、逻辑运算符、关系运算符、赋值运算符、逗号运算符、条件运算符和位运算符。本节主要介绍算术运算符,其他的运算符将在后续章节中详细介绍。

1.3.1 算术运算符

C语言中的算术运算符和数学中的算术运算相似,是对数据进行算术运算的。算术运算符的运算对象、运算规则及结合性如表1-5所示。

表1-5 算术运算符

运算对象个数 名 称 运 算 符 运 算 规 则 运算对象

数据类型 结 合 性

单目 正 + 取原值 整型或实型 自右向左

负 – 取负值

双目 加 + 加法运算 自左向右

减 – 减法运算

乘 * 乘法运算

除 / 除法运算

模 % 整除取余 整型

单目 增1(前缀) ++ 先加1,后使用 整型、字符型、指针型变量或数组元素、实型 自右向左

增1(后缀) ++ 先使用,后加1

减1(前缀) – – 先减1,后使用

减1(后缀) – – 先使用,后减1

在C语言中,参加运算的对象个数称为运算符的“目”。单目运算符是指参加运算的对象只有一个,如+10,–67,x++。双目运算符是指参加运算的对象有两个,如2+3,7%3。

相同运算符连续出现时,有的运算符是从左至右进行运算,有的运算符是从右至左进行运算,C语言中,将运算符的这种特性称为结合性。

加法(+)、减法(–)、乘法(*)与数学中的算术运算相同。例如:3.5+4.7结果是8.2;3.5 – 4.7结果是–0.8;3.5*4.7结果是16.45。

除法运算(/)与数学中的除法不完全相同,它与参加运算的对象的数据类型相关。当参加运算的两个对象均为整型数据时,其运算结果为数学运算结果的整数部分。如7/4结果为1,而不是1.75。若参加运算的两个对象有一个是实型或两个都是实型,那么运算结果为实际运算的值,如7/5.0的运算结果为1.4。

模运算的运算对象必须为整型,结果是相除后的余数,如7%5结果为2。

增1减1运算符都是单目运算符,用来对整型、实型、字符型、指针型变量或数组元素等变量进行加1或减1运算,运算的结果仍是原类型。

1.3.2 常用数学函数

C语言系统提供了400多个标准函数(称为库函数),设计程序时可以直接使用它们。库函数主要包括数学函数、字符处理函数、类型转换函数、文件管理函数及内存管理函数等几类。下面介绍常用的数学函数,其他类型的函数将在后面章节中陆续介绍。

1.函数名:abs

原型:int abs(int i);

功能:求整数的绝对值。

例如,设x=abs(5),y=abs(–5),z=abs(0),则x=5,y=5,z=0。

2.函数名:labs

原型:long labs(long n);

功能:求长整型数的绝对值。

例如,设x=labs(40000L),y=labs(–5),z=labs(0),则x=40000,y=5,z=0。

3.函数名:fabs

原型:double fabs(double x);

功能:求实数的绝对值。

例如,设x=fabs(5.3),y=fabs(–5.3),z=fabs(0),则x=5.3,y=5.3,z=0。

4.函数名:floor

原型:double floor(double x);

功能:求不大于x的最大整数,它相当于数学函数[x]。

例如,设x=floor(–5.1),y=floor(5.9),z=floor(5),则x= –6,y=5,z=5。

5.函数名:ceil

原型:double ceil(double x);

功能:求不小于x的最小整数。

例如,设x=ceil(–5.9),y=ceil(5.1),z=ceil(5),则x = –5,y=6,z=5

6.函数名:sqrt

原型:double sqrt(double x);

功能:求x的平方根。

例如,设x=sqrt(4),y=sqrt(16),则x=1.414214,y=4.0

7.函数名:log10

原型:double log10(double x);

功能:求x的常用对数。

8.函数名:log

原型:double log(double x);

功能:求x的自然对数。

9.函数名:exp

原型:double exp(double x);

功能:求欧拉常数e的x次方。

10.函数名:pow10

原型:double pow10(int p);

功能:求10的p次方。

例如,设x=pow10(3),y=pow10(0),则x=1000,y=1

11.函数名:pow

原型:double pow(double x, double y);

功能:求x的y次方。

例如,设x=pow(3,2),y=pow(–3,2),则x=9,y=9

12.函数名:sin

原型:double sin(double x);

功能:正弦函数。

13.函数名:cos

原型:double cos(double x);

功能:余弦函数。

14.函数名:tan

原型:double tan(double x);

功能:正切函数。

1.3.3 算术表达式

由算术运算符和运算对象连接形成的式子称为算术表达式。

算术运算符的优先级从高到低规定如下:

++ – –

* / %

+ –

位于同一行的运算符的优先级相同。

1.4 数据类型转换规则

对数据进行运算时,要求参与运算的对象的数据类型相同(运算得到的运算结果的类型与运算对象也相同)。因此,在运算过程中常常需要对变量或常量的数据类型进行转换,转换的方法有两种,一种是系统自动转换(又称为隐式转换);另一种是在程序中强制转换(又称为显式转换)。

1.4.1 自动转换规则

在不同类型数据的混合运算中,由系统自动实现转换。转换规则如下:

(1)若参与运算的数据的类型不同,则应先转换成同一类型,然后进行运算。

(2)将低类型数据转换成高类型数据后进行运算。如int型和long型运算时,先把int型转换成long型后再进行运算。

类型的高低是根据其所占空间的字节数按从小到大的顺序排列的,顺序如下:

char,int,long,float,double。

(3)所有的浮点运算都是按照双精度进行运算的,即使仅含float型单精度量运算的表达式,也要先转换成double型,再作运算。

(4)char型和short型参与运算时,必须先转换成int型。

例如,设有:

float PI=3.14;

int s,r=7;

s=r*r*PI;

因为PI为单精度型,s和r为整型,在执行s=r*r*PI语句时,r和PI都转换成double型后再进行计算,运算结果也为double型,右边的运算结果为153.86,但由于s为整型,故应将赋值号右边的运算结果转换成整型(舍去小数部分),因此s的值为153。

1.4.2 强制类型转换

强制类型转换是通过类型转换运算来实现的,其语法格式如下:

(类型说明符)(表达式)

其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (float) a 把a转换为实型;(int)(x+y) 把x+y的结果转换为整型;而(int)x+y 则只将x转换为整型。

在使用强制类型转换时应注意以下问题:

(1)类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则只是把x转换成int型之后再与y相加。

(2)对于被转换的单个变量而言,无论是强制转换还是自动转换,都只是为了本次运算的需要而对变量的数据长度进行临时性转换,而不会改变变量定义时所声明的类型。

例如,设有:

float f = –5.75;

int x;

x= (int)f;

将f强制转换成整数–5,因此x = –5,而f本身的类型并未改变且其值仍为–5.75。

1.5 程序结构

1.5.1 主函数结构

每一个C源程序都是一系列函数的集合。其中,必须有且只能有一个主函数,其函数名为main,其结构如下:

void main(void)

{

}

其中,void main(void) 称为函数说明部分(又称函数头),而

{

}

称为函数体,函数体中的每个语句行末尾都必须用分号结束。

1.5.2 文件包含命令

C语言系统提供了400多个库函数,并将这些函数根据其功能分成了若干组,每组都有一个组名。如数学类函数组的组名为math。在C语言系统所安装文件夹的下级文件夹中有一个与其相对应的文件math.h,这些扩展名为.h的文件称为头文件。

include称为文件包含命令,当用户在程序中使用到系统的标准库函数中的函数时,需要在程序中(一般在程序的首部)增加一条预处理语句如#includestdio.h,以便告知系统需要使用某个头文件中的函数。

1.5.3 C语言程序基本结构

一个完整的C语言源程序由如下5个部分构成:

(1)预处理命令;

(2)全局变量说明;

(3)函数原型说明;

(4)主函数;

(5)其他子函数。

一个简单的C语言源程序只需要(1)和(4)两个部分,其中“预处理命令”一般是一系列文件包含命令,即include命令。

关于程序结构,应当注意以下几方面的问题:

(1)可由若干个函数构成,其中必须有且只有一个以main命名的主函数,可以没有其他函数。每个函数完成一定的功能,函数与函数之间可以通过参数传递信息。main()函数可以位于原程序文件中任何位置,但程序的执行总是从main函数开始,main函数执行完毕时程序执行结束。

(2)子函数的结构与主函数相同,即分为函数说明部分和函数体两个部分。

(3)函数中的每个语句最后要有一个分号,作为语句结束标记。但某些特殊的语句行末尾不需要分号,有时还不能有分号。

(4)“/*”和“*/”括住的任意一段字符称为“程序注释”,用来对程序作说明,可以插入到程序的任何地方,且可以跨行使用。程序注释不影响程序运行结果。

(5)函数的书写格式很灵活,在一行中可以书写多个语句(每个语句末尾都要有分号),一个语句也可以写在多行中。在程序的任何地方都可以插入空格或回车符。

(6)主函数可以调用任何子函数但不能调用它自己,任何子函数之间也可以相互调用,但是子函数不能调用主函数。

下面是一个简单的C语言源程序:

【例1-1】 求圆的面积。

#include stdio.h

void main(void)

{

float r,s,p=3.14;

r=10.5;

s=r*r*p;

printf("圆的面积是:%f ",s);

}

下面是一个较完整的C语言源程序:

【例1-2】 较完整的C语言程序示例。

#includestdio.h

#includeconio.h

int y,z;

void abc(int x);

void main(void)

{

int x;

clrscr();

x=10;

y=20;

z=30;

printf("ok1: x=%d y=%d z=%d \n",x,y,z);

abc(x);

printf("ok2: x=%d y=%d z=%d \n",x,y,z);

getch();

}

void abc(int x)

{

int y;

printf("ok3: x=%d y=%d z=%d \n",x,y,z);

x=100;

y=200;

z=300;

printf("ok4: x=%d y=%d z=%d \n",x,y,z);

}

c语言基础知识

代码基本上没有问题。这里给你两个建议:

if或for后面的代码块,不管是只有一行还是多行,建议都要用{ }包起来,保证不会弄错!

return 0问题,每个编译器的处理会有所不同,(如果你不写)有些会编译器会自动加上这句;但是有些编译器可能会显示警告或者错误,所以我建议:加上return 0。

学习C语言需要掌握哪些基本知识?

1.入门程序

#include stdio.h

int main()

{

printf("Hello World!");

return 0;

}

2.数据类型

数据类型:

1.基本数据类型:

1.1. 整型:int 4个字节

1.2. 字符型:char 1个字节

1.3. 实型(浮点型)

1.3.1.单精度型:float 4个字节

1.3.2.双精度型:double 8个字节

2.构造类型:

2.1.枚举类型

2.2.数组类型

2.3.结构体类型

2.4.共用体类型

3.指针类型:

4.空类型:

3.格式化输出语句

%d:十进制整数;

%c:单个字符;

%s:字符串;

%f:6位小数;

#include stdio.h

int main()

{

int age = 18;

float height = 1.85;

char unit = 'm';

printf("小明今年%d岁\n", age);

printf("小明身高%f%c\n", height, unit);

printf("小明现在在慕课网上学习IT技术\n");

return 0;

}

学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样

已失效

4.常量

值不发生改变的量成为常量;

定义字符常量(注意后面没有;)

#include stdio.h

#define POCKETMONEY 10 //定义常量及常量值

int main()

{

printf("小明今天又得到%d元零花钱\n", POCKETMONEY);

return 0;

}

5.运算符

5.1.算数运算符:+,-,*,/,%,++,--;前++/--,先运算,再取值.后++/--,先取值,再运算;

5.2.赋值运算符:

5.3.关系运算符;

5.4.逻辑运算符;

5.5.三目运算符:

表达式1 ? 表达式2 : 表达式3;

6.水仙花数计算

输出所有三位数的水仙花数字

所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数,如:153就是一个水仙花数,153=111+555+333。

#include stdio.h

int main()

{

//定义三位数num,个位数sd,十位数td,百位数hd

int num, sd, td, hd;

//循环所有三位数

for( num=100 ; num1000 ; num++ )

{

//获取三位数字num百位上的数字

hd = num/100 ;

//获取三位数字num十位上的数字

td = num/10%10 ;

//获取三位数字num个位上的数字

sd = num%10 ;

//水仙花数的条件是什么?

if(num ==hd*hd*hd+td*td*td+sd*sd*sd )

{

printf("水仙花数字:%d\n", num);

}

}

return 0;

}

7.打印正三角形的*

#include stdio.h

int main()

{

int i, j, k;

for(i=1; i5; i++)

{

/* 观察每行的空格数量,补全循环条件 */

for( j=i ; j5 ; j++ )

{

printf(" "); //输出空格

}

/* 观察每行*号的数量,补全循环条件 */

for( k=0 ; k2*i-1 ; k++ )

{

printf("*"); //每行输出的*号

}

printf("\n"); //每次循环换行

}

return 0;

}

8.臭名远扬的goto语句

很少使用

#include stdio.h

int main()

{

int sum = 0;

int i;

for(i=1; i=10; i++)

{

printf("%d\n", i);

if(i==3){

goto LOOP;//满足条件就执行goto语句

}

}

//执行goto

LOOP:printf("结束for循环了...."); //请选择合适位置添加标识符

return 0;

}

9.形参与实参

形参:形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数;

实参:实参是在调用时传递该函数的参数。

函数的形参和实参具有以下特点:

形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。

在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

10.函数返回值注意

注意:void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;

11.递归

#include stdio.h

int getPeachNumber(int n) //这里要定义n,要不编译器会报错!

{

int num;

if(n==10)

{

return 1;

}

else

{

num = (getPeachNumber(n+1)+1)*2;

printf("第%d天所剩桃子%d个\n", n, num);

}

return num;

}

int main()

{

int num = getPeachNumber(1);

printf("猴子第一天摘了:%d个桃子。\n", num);

return 0;

}

12.变量存储类别 !

12.1.生存周期划分存储方式

C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式。

静态存储方式:是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。

动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。

12.2.存储类型划分

C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern) ;

用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。

用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。

注意:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)

为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。

注意:只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。

用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量。

#includ stdio.h

//来源公众号:C语言与CPP编程

int main()

{

//定义外部局部变量

extern int x;

return 0;

}

int x=100;

13.内部函数外部函数 !

在C语言中不能被其他源文件调用的函数称为内部函数 ,内部函数由static关键字来定义,因此又被称为静态函数,形式为:

static [数据类型] 函数名([参数])

这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。

在C语言中能被其他源文件调用的函数称为外部函数 ,外部函数由extern关键字来定义,形式为:

extern [数据类型] 函数名([参数])

C语言规定,在没有指定函数的作用范围时,系统会默认认为是外部函数,因此当需要定义外部函数时extern也可以省略。 extern可以省略; 14.数组 数组:一块连续的,大小固定并且里面的数据类型一致的内存空间, 数组的声明:数据类型 数组名称[长度n]

数据类型 数组名称[长度n] = {元素1,元素2,元素3,......};

数据类型 数组名称[] = {元素1,元素2,元素3,......};

数类类型 数组名称[长度n]; 数组名称[0] = 元素1;数组名称[1] = 元素2;...... 注意: 1、数组的下标均以0开始; 2、数组在初始化的时候,数组内元素的个数不能大于声明的数组长度; 3、如果采用第一种初始化方式,元素个数小于数组的长度时,多余的数组元素初始化为0; 4、在声明数组后没有进行初始化的时候,静态(static)和外部(extern)类型的数组元素初始化元素为0,自动(auto)类型的数组的元素初始化值不确定。

15.数组遍历

#include stdio.h

int main()

{

int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

int i;

for(i=0;i10;i++)

{

printf("%d\n",arr[i]);

}

return 0;

}

数组的冒泡排序

冒泡排序的思想:相邻元素两两比较,将较大的数字放在后面,直到将所有数字全部排序。

字符串与数组

在C语言中,是没有办法直接定义子字符串数据类型的,需使用数组来定义所要的字符串,形式如下:

char 字符串名称[长度] = "字符串内容";

char 字符串名称[长度] = {'字符串1','字符串2',....,'字符串n','\0'};

注:

[]中的长度可以省略不写;

采用第二种方式最后一个元素必须是'\0',表示结束;

第二种方式不能写中文!; 输出字符串时,要使用:printf("%s",字符数组名);或puts(字符数组名);

16.字符串函数

strlen(s):获取字符串s的长度;

strcmp(s1,s2):比较字符串;比较的时候会把字符串转换成ASCII码再进行比较,返回结果为0表示s1和s2的ASCII码值相等,返回结果为1表示s1比s2的ASCII码大,返回结果为-1表示s1比s2的ACSII码小;

strcpy(s1,s2):字符串拷贝;s2会取代s1中的内容;

strcat(s1,s2)将s2拼接到s1后面;注意:s1的length要足够才可以!

atoi(s1)将字符串转为整数!

17.多维数组

数据类型 数组名称[常量表达式1]...[常量表达式n];

多维数组的初始化与一维数组的初始化类似也是分两种:

数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};

数据类型 数组名称[常量表达式1][常量表达式2]...[常量表达式n]; 数组名称[下标1][下标2]...[下标n] = 值;

多维数组初始化要注意以下事项:

采用第一种始化时数组声明必须指定列的维数。因为系统会根据数组中元素的总个数来分配空间,当知道元素总个数以及列的维数后,会直接计算出行的维数;

采用第二种初始化时数组声明必须同时指定行和列的维数。

18.多维度数组的遍历

使用嵌套循环

注意:多维数组的每一维下标均不能越界!

19.结构体

C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。

结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:

Title

Author

Subject

Book ID

定义结构

为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

struct tag {

   member-list

   member-list

   member-list  

   ...

} variable-list ;

tag 是结构体标签。

member-list 是标准的变量定义,比如 int i; 或者 float f,或者其他有效的变量定义。

variable-list 结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。下面是声明 Book 结构的方式:

struct Books

{

  char  title[50];

  char  author[50];

  char  subject[100];

  int   book_id;

} book;

在一般情况下,tag、member-list、variable-list 这 3 部分至少要出现 2 个。以下为实例:

//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

//同时又声明了结构体变量s1

//这个结构体并没有标明其标签

struct

{

   int a;

   char b;

   double c;

} s1;

//此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

//结构体的标签被命名为SIMPLE,没有声明变量

struct SIMPLE

{

   int a;

   char b;

   double c;

};

//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3

struct SIMPLE t1, t2[20], *t3;

//也可以用typedef创建新类型

typedef struct

{

   int a;

   char b;

   double c;

} Simple2;

//现在可以用Simple2作为类型声明新的结构体变量

Simple2 u1, u2[20], *u3;

访问结构成员

为了访问结构的成员,我们使用成员访问运算符(.)。成员访问运算符是结构变量名称和我们要访问的结构成员之间的一个句号。您可以使用 struct 关键字来定义结构类型的变量。下面的实例演示了结构的用法:

#include stdio.h

#include string.h

//来源公众号:C语言与CPP编程

struct Books

{

  char  title[50];

  char  author[50];

  char  subject[100];

  int   book_id;

};

int main( )

{

  struct Books Book1;        /* 声明 Book1,类型为 Books */

  struct Books Book2;        /* 声明 Book2,类型为 Books */

  /* Book1 详述 */

  strcpy( Book1.title, "C Programming");

  strcpy( Book1.author, "Nuha Ali");

  strcpy( Book1.subject, "C Programming Tutorial");

  Book1.book_id = 6495407;

  /* Book2 详述 */

  strcpy( Book2.title, "Telecom Billing");

  strcpy( Book2.author, "Zara Ali");

  strcpy( Book2.subject, "Telecom Billing Tutorial");

  Book2.book_id = 6495700;

  /* 输出 Book1 信息 */

  printf( "Book 1 title : %s\n", Book1.title);

  printf( "Book 1 author : %s\n", Book1.author);

  printf( "Book 1 subject : %s\n", Book1.subject);

  printf( "Book 1 book_id : %d\n", Book1.book_id);

  /* 输出 Book2 信息 */

  printf( "Book 2 title : %s\n", Book2.title);

  printf( "Book 2 author : %s\n", Book2.author);

  printf( "Book 2 subject : %s\n", Book2.subject);

  printf( "Book 2 book_id : %d\n", Book2.book_id);

  return 0;

}

学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样

已失效

20.共用体

共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。

#include stdio.h

#include string.h

union Data

{

  int i;

  float f;

  char  str[20];

};

int main( )

{

  union Data data;        

  printf( "Memory size occupied by data : %d\n", sizeof(data));

  return 0;

}

21.指针

#include stdio.h

int main ()

{

  int  var = 20;   /* 实际变量的声明 */

  int  *ip;        /* 指针变量的声明 */

  ip = var;  /* 在指针变量中存储 var 的地址 */

  printf("Address of var variable: %p\n", var  );

  /* 在指针变量中存储的地址 */

  printf("Address stored in ip variable: %p\n", ip );

  /* 使用指针访问值 */

  printf("Value of *ip variable: %d\n", *ip );

  return 0;

}

22.文件读写

写入文件

#include stdio.h

int main()

{

  FILE *fp = NULL;

  fp = fopen("/tmp/test.txt", "w+");

  fprintf(fp, "This is testing for fprintf...\n");

  fputs("This is testing for fputs...\n", fp);

  fclose(fp);

}

读取文件

#include stdio.h

int main()

{

  FILE *fp = NULL;

  char buff[255];

  fp = fopen("/tmp/test.txt", "r");

  fscanf(fp, "%s", buff);

  printf("1: %s\n", buff );

  fgets(buff, 255, (FILE*)fp);

  printf("2: %s\n", buff );

 

  fgets(buff, 255, (FILE*)fp);

  printf("3: %s\n", buff );

  fclose(fp);

}

C语言与C++学习路线

23.排序算法

十大经典排序算法(动态演示+代码)

24.查找算法

九种查找算法

25.面试知识

C语言与C++面试知识总结

26.字符串操作

字符串操作的全面总结

27. C语言常用标准库解读

C语言常用标准库解读

28. C语言最常用的贪心算法

C语言最常用的贪心算法就这么被攻克了

29. 常见的C语言内存错误及对策

常见的C语言内存错误及对策

30. C语言实现面向对象的原理

C语言实现面向对象的原理

31. C语言/C++内存管理

看完这篇你还能不懂C语言/C++内存管理?

32. 再谈C语言指针

再谈指针:大佬给你拨开 C 指针的云雾

C语言函数指针之回调函数

C语言指针详解(文末有福利)

33. C语言预处理命令

长文详解:C语言预处理命令

34. C语言高效编程与代码优化

C语言高效编程与代码优化

35. C语言结构体

C语言之结构体就这样被攻克了!值得收藏!

36. 原码, 反码, 补码 详解

原码, 反码, 补码 详解

37. C语言宏定义

简述C语言宏定义的使用

38. c语言之共用体union、枚举、大小端模式

c语言之共用体union、枚举、大小端模式

零基础如何学习C语言?

现在,市面上的 C语言书籍多的数不过来,但是很多不适合你这种初学者使用,作为一名老程序员,我给你推荐几本我看过认为还不错的书:

1) 《C语言小白变怪兽》:既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。同时,最重要的是,这本书的作者还在不断地更新这本书,我认为最大的特点是通俗易懂,深入浅出,只要认真看,就一定能看懂,我认为这是C语言入门的首选教材,吐血推荐,经典中的经典!!!

2) 《啊哈C语言》:适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。

上边这两本书是我推荐给你用于C语言入门的,我不建议你使用谭浩强的《C语言程序设计》这本书入门,虽然这本书的知名度很高,因为很多大学把它作为C语言的授课教材,然而,这本书被吐槽最多,不但代码不标准,而且有很多错误,据说可以找出几十个错误,这样很容易误导你这种小白。

等你有一定的C语言基础了,可以看下面的这几本书,进一步提升你的编程水平:

1) 《C Primer Plus》:畅销 30 余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。

2) 《C程序设计语言,The C Programming Language》:C语言创始人丹尼斯·里奇(Dennis MacAlistair Ritchie)的著作,和《C Primer Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。

3) 《C专家编程》:适合已经具备C语言基础、想进阶的读者。这貌似是一本吐槽C语言的书,基本上介绍了大多数C语言的坑,有不少精髓,在C语言界久负盛名,进阶时一定要看。

4) 《C陷阱与缺陷》:和《C专家编程》类似,也是给C语言挑刺的,阐述了很多容易让人误解的语法细节,重在帮助C程序员绕过编程过程中的陷阱和障碍。

5) 《程序员的自我修养 -- 链接、装载与库》:这真是一本深入骨髓的书,让你彻底明白程序的编译、链接、装载和运行的全过程,你会从此上天,拉开和别人的差距,看任何问题都有了深度和高度。重点推荐!

扫描二维码推送至手机访问。

版权声明:本文由黑客平台在线接单_免费黑客平台的网站发布,如需转载请注明出处。

本文链接:http://heikexuexi.com/25603.html

分享给朋友:

“c语言代码基础知识(c语言的基础代码有哪些)” 的相关文章

觉得幸福就是心怀感恩

觉得幸福就是心怀感恩

                                                                                               许多 时刻 很容易被韶光 软禁 。如果你不小心 ,你会无缘无故地陷入记忆的泥潭。人们,总是 如此 ,很容易 感...

社会实践心得体会

社会实践心得体会

                                                                                               在那一个多月的社会理论口中,我得到了理解 面,次要负责办私人文员。在那个过程 之外,尔使用了浏览、提问、进一步...

半年工作总结结尾

半年工作总结结尾

                                                                                               作为一家私营公司的下级管理人员或专业负责人,我们每年年底都要 。我们总是需要 ?对 本身的事情没有总结。只要...

公务员申论主要考什么

公务员申论主要考什么

                                                                                               应用 加入 公务 员测试 长度 通常主要是 。即使 没有参加 私人考试,外部应用也不仅仅是为了处理 本身 日常...

大学毕业生自我鉴定

大学毕业生自我鉴定

                                                                                               许多 人对写自我判断感到愤怒和悲伤。对于 年夜 教熟,还需要 写自我判断 ,所以在 毕业的时候 , 野都邑 写...

教育心得怎么写 家长

教育心得怎么写 家长

                                                                                               野生庭院学育不仅是学育的组成部门 之一,也是学校 学育战社会学育的基础 。野生庭院学育是一种终身学育。现在 野...

评论列表

囤梦桔烟
2年前 (2022-06-02)

– 先使用,后减1 在C语言中,参加运算的对象个数称为运算符的“目”。单目运算符是指参加运算的对象只有一个,如+10,–67,x++。双目运算符是指参加运算的对象有两个,如2+3,7%3。相同运算符连续出现时,有的运算符是从左至右进行

美咩嘟醉
2年前 (2022-06-02)

一个水仙花数,153=111+555+333。#include stdio.hint main(){ //定义三位数num,个位数sd,十位数td,百位数hd int num, sd, td, hd; //循环所有三位数 for( num=100 ; num1000 ; num++ ) {

只影苍阶
2年前 (2022-06-02)

进并取名为B的语言,通过不断修改、完善,更先进的C语言问世了。C语言是一种功能强大、应用广泛、具有发展前途的计算机语言。它既可用于系统软件的设计,也可用于应用软件的开发。许多著名的系统软件都是由C语言编写的。C语言具有下列特点:(1)C语言既具有低

北槐謓念
2年前 (2022-06-01)

i); if(i==3){ goto LOOP;//满足条件就执行goto语句 } } //执行gotoLOOP:printf("结束for循环了...."); //请选择合适位置添加标识符 return

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。