C语言学习
东哥说AI
专注AI、RPA、Python等前沿技术,分享AI工具、变现思路。关注东哥不迷路,创富路上大踏步。
展开
-
C语言入门系列之12.位运算
位运算是指按二进制位进行的运算;按位与运算符&,只有两个二进制位都为1结果才为1,可用于清零或取一个数中某些指定位;按位或操作符|,两个二进制位只要有一个为1,该位的结果值为1;异或运算符^,两个二进制位同号则结果为0,异号为1,可用于使特定位翻转和保留原值;取反运算符~对二进制数按位取反;左移运算符<<用来将数的各二进制位全部左移若干位;右移运算符>>将二进制数位右移2位;位运算符与赋值运算符可以组成复合赋值运算符。位运算有很多实际的应用;可以实现循环移位。在结构体中可定义指定位长度的成员,为位段。原创 2020-05-23 18:34:56 · 3437 阅读 · 19 评论 -
C语言入门系列之11.文件和文件操作
文件是一组相关数据的有序集合;从不同的角度可对文件作不同的分类;C语言对文件的操作都是用库函数实现。通过FILE类型定义文件指针;文件打开使用fopen函数,文件使用方式有很多种;文件关闭使用fclose函数。字符读写函数逐个读写字符,文本文件和二进制文件有区别;字符串读写函数读写指定个数字符到字符串;数据块读写函数读写具有一定结构的整块数据;格式化读写函数按格式读写数据。fseek函数改变文件的位置指针;ftell函数获取当前位置。ferror函数检测是否出错;clearerr函数将错误标志置为0。原创 2020-05-20 19:11:13 · 3001 阅读 · 10 评论 -
C语言入门系列之10.结构体和共用体
结构体将不同类型的数据组形成一个整体;定义结构体类型变量有3种方式;引用结构体成员方式为结构体变量名.成员名;可以初始化结构体变量。可以定义结构体数组,还可以初始化;可以定义指针指向结构体变量;将一个结构体变量的值传递给另一个函数有3种方式。C语言提供了一些内函数,包括malloc、calloc、free,用来动态管理内存;链表是动态分配存储的一种数据结构,包括创建、打印、删除、插入等操作。共用体是使不同的变量共占同一段内存的结构。枚举类型用于列举取值有限的变量。typedef声明新名称来代替类型名。原创 2020-05-17 21:58:37 · 2660 阅读 · 13 评论 -
C语言入门系列之9.预处理
在程序中预处理命令都放在函数之外,而且一般都放在源文件的前面。无参宏的宏名后不带参数;只是简单替换,不做任何检查,作用域为宏定义命令起到源程序结束,宏定义允许嵌套,可用宏定义表示数据类型,这与typedef不同,还可以对输出格式作宏定义。C语言允许宏带有参数,在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数,调用时是以实参代换形参;不必对参数作类型定义,形参通常要用括号括起来。文件包含一般用可以用双引号或尖括号括起来,可根据需要选择某一种命令形式。预处理程序提供了条件编译的功能,有3种形式。原创 2020-05-11 19:46:26 · 2432 阅读 · 12 评论 -
C语言入门系列之8.指针的概念与应用
指针变量用来存放地址。*定义指针变量,&获取变量地址。可以定义指向数组元素的指针变量;引用数组元素有下标法和指针法2种;可以用数组名作函数参数;指针变量可以指向多维数组元素。定义字符串有字符数组和指针两种方式;字符串存取字符可以用下标或指针方法;字符指针可以作函数参数;字符指针变量和字符数组有一定区别。可以用函数指针变量调用函数;用指向函数的指针作函数参数;函数的返回值可以是指针型;可以定义指针数组和指向指针的指针;main函数可以将指针数组作为形参。void类型可以限定函数,可以用const修饰指针。原创 2020-05-08 00:28:23 · 2312 阅读 · 10 评论 -
C语言入门系列之7.函数的定义、参数、调用和存储类别
函数用于实现特定功能,可以互相调用。分为无参函数、有参函数和空函数。在定义函数时定义形参,调用函数时传递实参;函数返回值通过return获得;不带返回值时定义为空类型。函数调用形式为函数名 (实参表列)。C语言可以嵌套调用函数。在调用函数时又调用该函数本身为递归,必须有退出条件。数组元素相当于普通变量,数组名作参数时要求形参和实参必须为类型相同的数组。局部变量只在本函数内有效,全局变量范围从定义开始到文件结束。存储分为动态存储和静态存储,分为自动、静态、寄存器、外部;函数还可以分为内部函数和外部函数。原创 2020-05-01 11:55:56 · 6492 阅读 · 16 评论 -
C语言入门系列之6.一维和二维数组
数组是具有相同类型的数据组成的序列,是有序集合,每一个数据称为元素。在C语言中使用数组必须先进行定义,一维数组声明格式为类型说明符 数组名 [常量表达式];,不允许对数组的大小作动态定义;形式为数组名[下标];给数组赋值包括赋值语句赋值、初始化赋值和动态赋值3种方式。二维数组的定义格式为类型说明符 数组名[常量表达式][常量表达式];,可理解为元素是一维数组的一维数组;引用形式是数组名[下标][下标],可以有多种方式进行初始化。利用二分法查找数据可以大大加快查询速率;内存分为4个区,每个区有不同的功能。原创 2020-04-27 10:18:31 · 4199 阅读 · 7 评论 -
C语言入门系列之5.循环控制结构程序
循环结构在给定条件成立时,反复执行某程序段,包括循环条件和循环体。goto语句是一种无条件转移语句,需要用标号来指定跳转的位置。while语句当循环条件为真时, 执行循环体语句,可能会出现死循环。do-while语句先执行循环中的语句,然后再判断表达式是否为真,至少要执行一次。for语句格式为for(循环变量赋初值; 循环条件; 循环变量增量);可以省略部分或全部表达式;循环还可以嵌套。几种循环方式各有适用的应用场景。break用于提前结束循环;continue用于跳过本次循环,继续执行后面的循环语句。原创 2020-04-24 11:19:48 · 3413 阅读 · 9 评论 -
C语言入门系列之4.分支结构程序-关系、逻辑运算和if、switch语句
关系运算符用于比较两个量的大小,是左结合;关系表达式可以嵌套,值是真或假。逻辑运算符有与、或、非;表达式的值也为真和假;可以嵌套。if语句可以构成分支结构,有3种形式;表达式中判断两个值是否相等用==,有多个语句时用{}括起来;当if语句中的执行语句又是if语句时,构成嵌套,else与if配对应该采取就近原则,一般情况下较少使用if语句的嵌套结构。条件运算符为?和:,是三目运算符,经常用于赋值语句之中;是右结合。switch语句用于匹配多种情况,跳出switch语句可以使用break,表达式的值不能相同。原创 2020-04-21 17:14:16 · 3035 阅读 · 11 评论 -
C语言入门系列之3.顺序程序设计和输入输出
C程序的执行由语句组成,分为表达式语句、函数调用语句、控制语句、复合语句和空语句;赋值语句由赋值表达式和分号构成,一般形式为变量=表达式。输入输出是以计算机为主体的,在C语言中的输入输出都是由库函数完成的;putchar函数是字符输出函数,功能是在显示器上输出单个字符;getchar函数是从键盘上输入一个字符;printf为格式输出函数,格式控制字符串指定输出格式,格式字符串包括类型、标志、最小宽度、精度、长度;scanf为格式输入函数,地址表列中给出各变量的地址,格式字符串包含类型、*符、宽度和长度。原创 2020-04-18 22:11:12 · 2810 阅读 · 15 评论 -
C语言入门系列之2.数据类型、运算符和表达式
C语言中数据类型分为基本类型、构造类型、指针类型和空类型;基本数据类型量分为常量和变量;整型常量分为八进制、十六进制和十进制,整型变量需要定义,有基本型、短整型、长整型和无符号型4类;实型常量有十进制小数和指数形式两种,按指数形式存储,分为单精度、双精度和长双精度;字符型数据分为字符常量和字符变量,转义字符具有特定含义,字符串常量是双引号括起的字符序列;需要对变量赋初值;变量类型转换分为自动转换和强制转换。基本运算符是算术运算符;运算符具有优先级和结合性;高级运算符包括强制类型转换、自增自减、赋值和逗号。原创 2020-04-16 14:14:10 · 2671 阅读 · 23 评论 -
C语言入门系列之1.C语言概述和上机运行简单C程序
C语言由贝尔实验室发表,有《(K&R》标准,并指定ANSI C标准。C语言的强大功能和各方面的有点使其成为最优秀的程序设计语言之一。C语言的特点包括简洁灵活、控制语句书写自由、运算符丰富、数据结构类型丰富、结构化控制语句、语法限制不太严格、能进行位操作实现汇编语言功能、执行效率高、可移植性好等特点,但是对程序员要求也较高。面向过程强调以事件为中心、依次调用函数,面向对象强调以事物为中心,把事物封装进对象,并在对象中根据功能实现方法。一个C程序必须要有main函数,并且只能由1个,用include包含头文件。原创 2020-04-15 12:51:47 · 6448 阅读 · 8 评论