【理论+经验】c语言入门 c语言基础知识点
文章平均质量分 55
c语言常用,基础知识点,看这一个专栏就够了。
时时三省
拒绝照本宣科,让理论联系实际,结合多年编程经验,做一名牛逼哄哄的优秀博主。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【时时三省】(C语言基础)文件读写的出错检测
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省C提供一些函数用来检查输入输出函数调用时可能出现的错误。原创 2025-10-21 13:03:21 · 263 阅读 · 0 评论 -
【时时三省】(C语言基础)随机读写
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省有了rewind和fseek函数,就可以实现随机读写了。通过下面简单的例子可以了解怎样进行随机读写。原创 2025-10-17 17:49:14 · 344 阅读 · 0 评论 -
【时时三省】(C语言基础)随机读写数据文件
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省对文件进行顺序读写比较容易理解,也容易操作,但有时效率不高,例如文件中有1000个数据,若只查第1000个数据,必须先逐个读入前面999个数据,才能读入第1000个数据。如果文件中存放一个城市几百万人的资料,若按此方法查某一人的情况,等待的时间可能是不能忍受的。随机访问不是按数据在文件中的物理位置次序进行读写,而是可以对任何位置上的数据进行访问,显然这种方法比顺序访问效率高得多。原创 2025-10-16 17:52:17 · 298 阅读 · 0 评论 -
【时时三省】(C语言基础)用格式化的方式读写文本文件
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省前面进行的是字符的输入输出,而实际上数据的类型是丰富的。大家已很熟悉用printf函数和scanf函数向终端进行格式化的输入输出,即用各种不同的格式以终端为对象输入输出数据。其实也可以对文件进行格式化输入输出,这时就要用fprintf函数和fscanf函数,从函数名可以看到,它们只是在printf和scanf的前面加了一个字母f。它们的作用与printf函数和scanf函数相仿,都是格式化读写函数。原创 2025-10-15 21:59:45 · 265 阅读 · 0 评论 -
【时时三省】(C语言基础)怎样向文件读写一个字符串
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省C语言允许通过函数fgets和fputs一次读写一个字符串,例如:fgets ( str , n , fp );作用是从fp所指向的文件中读入一个长度为n-1的字符串,并在最后加一个' \0 '字符,然后把这n个字符存放到字符数组str中。原创 2025-10-14 17:56:00 · 200 阅读 · 0 评论 -
【时时三省】(C语言基础)顺序读写数据文件
文件打开之后,就可以对它进行读写了。在顺序写时,先写入的数据存放在文件中前面的位置,后写入的数据存放在文件中后面的位置。在顺序读时,先读文件中前面的数据,后读文件中后面的数据。也就是说,对顺序读写来说,对文件读写数据的顺序和数据在文件中的物理顺序是一致的。顺序读写需要用库函数实现。原创 2025-10-10 21:50:27 · 325 阅读 · 0 评论 -
【时时三省】(C语言基础)打开与关闭文件
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省对文件读写之前应该“打开”该文件,在使用结束之后应“关闭”该文件。“打开”和“关团”是形象的说法,好像打开门才能进入房子,门关闭就无法进入一样。实际上,所谓“打开”是指为文件建立相应的信息区(用来存放有关文件的信息)和文件缓冲区(用来暂时存放输入输出的数据)。在编写程序时,在打开文件的同时,一般都指定一个指针变量指向该文件,也就是建立起指针变量与文件之间的联系,这样,就可以通过该指针变量对文件进行读写了。原创 2025-08-22 21:39:03 · 482 阅读 · 0 评论 -
【时时三省】(C语言基础)C文件的有关知识
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省凡是用过计算机的人都不会对“文件”感到陌生,大多数人都接触过或使用过文件,例如:写好一篇文章把它存放到磁盘上以文件形式保存;编写好一个程序,以文件形式保存在磁盘中;用数码相机照相,每一张照片就是一个文件;随电子邮件发送的“附件”就是以文件形式保存的信息。需要时就从文件读取信息。在程序中使用文件之前应了解有关文件的基本知识。文件有不同的类型,在程序设计中,主要用到两种文件:包括源程序文件(后缀为.c)、目标文件(后缀为. obj )、可执行文原创 2025-08-21 17:16:13 · 282 阅读 · 0 评论 -
【时时三省】(C语言基础)用typedef声明新类型名
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省除了可以直接使用C提供的标准类型名(如int,char,float,double和long等)和程序编写者自己声明的结构体、共用体、枚举类型外,还可以用typedef指定新的类型名来代替已有的类型名。原创 2025-08-20 14:50:24 · 817 阅读 · 0 评论 -
【时时三省】(C语言基础)使用枚举类型
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省如果一个变量只有几种可能的值,则可以定义为枚举(enumeration)类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。声明枚举类型用enum开头。例如:以上声明了一个枚举类型enum Weekday。然后可以用此类型来定义变量。例如:workday和weekend被定义为枚举变量,花括号中的sun,mon,…,sat称为枚举元素或枚举常量。它们是用户指定的名字。原创 2025-08-20 13:19:22 · 546 阅读 · 0 评论 -
【时时三省】(C语言基础)共用体类型数据的特点
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省在使用共用体类型数据时要注意以下一些特点:( 1 )同一个内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一个成员,而不是同时存放几个。其道理是显然的,因为在每一个瞬时,存储单元只能有唯一的内容,也就是说,在共用体变量中只能存放一个值。如果有以下程序段:union Date{ int i;char ch;float f;}a;a.i = 97;原创 2025-08-16 17:24:38 · 521 阅读 · 0 评论 -
【时时三省】(C语言基础)共用体类型
有时想用同一段内存单元存放不同类型的变量。例如,把一个短整型变量、一个字符型变量和一个实型变量放在同一个地址开始的内存单元中。以上3个变量在内存中占的字节数不同,但短整型变量都从同一地址开始,也就是使用覆盖技术,后一个数据覆盖了前面的数据。这种使几个不同字符变的变量共享同一段内存的结构,称为“共用体”类型的结构。定义共用体类型变量的一般形式为union 共用体名{ 成员表列}变量表列;例如:union Data{ int i;char ch;float f;}a , b , c;原创 2025-08-15 15:17:15 · 368 阅读 · 0 评论 -
【时时三省】(C语言基础)输出链表
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省将链表中各结点的数据依次输出。这个问题比较容易处理。原创 2025-08-14 15:09:09 · 245 阅读 · 0 评论 -
【时时三省】(C语言基础)建立动态链表
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省所谓建立动态链表是指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。原创 2025-08-12 15:45:39 · 594 阅读 · 0 评论 -
【时时三省】(C语言基础)用指针处理链表
链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。由前面的介绍中已知:用数组存放数据时,必须事先定义固定的数组长度(即元素个数)。如果有的班级有100人,而有的班级只有30人,若用同一个数组先后存放不同班级的学生数据,则必须定义长度为100的数组。如果事先难以确定一个班的最多人数,则必须把数组定得足够大,以便能存放任何班级的学生数据,显然这将会浪费内存。链表则没有这种缺点,它根据需要开辟内存单元。链表有一个“头指针”变量,它存放一个地址,该地址指向一个元素。原创 2025-08-11 14:41:38 · 290 阅读 · 0 评论 -
【时时三省】(C语言基础)用结构变量和结构体变量的指针作函数参数
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省将一个结构体变量的值传递给另一个函数,有3个方法:( 1 )用结构体变量的成员作参数。例如,用stu [ 1 ].num或stu [ 2 ] .name作函数实参将实参值传给形参。用法和用普通变量作实参是一样的,属于“值传递”方式。应当注意实参与形参的类型保持一致。( 2 )用结构体变量作实参。用结构体变量作实参时,采取的也是“值传递”的方式,将结构体变量所占的内存单元的内容全部按顺序传递给形参,形参也必须是同类型的结构体变量。原创 2025-08-09 14:36:15 · 847 阅读 · 0 评论 -
【时时三省】(C语言基础)指向结构体数组的指针
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省可以用指针变量指向结构体数组的元素。请分析下面的例子。原创 2025-08-08 15:46:16 · 335 阅读 · 0 评论 -
【时时三省】(C语言基础)结构体指针
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省所谓结构体指针就是指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中,那么,这个指针变量就指向该结构体变量。原创 2025-08-07 15:54:47 · 300 阅读 · 0 评论 -
【时时三省】(C语言基础)结构体变量的初始化和引用
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省在定义结构体变量时,可以对它初始化,即赋予初始值。然后可以引用这个变量,例如输出它的成员的值。原创 2025-08-06 14:41:27 · 314 阅读 · 0 评论 -
【时时三省】(C语言基础)定义结构体类型变量
声明一个结构体类型struct Student,可以用它来定义变量。例如:这种形式和定义其他类型的变量形式(如int a,b;)是相似的。上面定义了studentl和student2为struct Student类型的变量,这样studentl和student2就具有struct Student类型的结构。在定义了结构体变量后,系统会为之分配内存单元。根据结构体类型中包含的成员情况,在Visual C++中占63个字节( 4 + 20 +1 + 4 + 4 + 30 = 63 )。原创 2025-08-05 12:36:45 · 249 阅读 · 0 评论 -
【时时三省】(C语言基础)用户自己建立数据类型
程序中,所用的变量大多数是互相独立、无内在联系的。例如定义了整型变量a,b,c,它们都是单独存在的变量,在内存中的地址也是互不相干的,但在实际生活和工作中,有些数据是有内在联系的,成组出现的。例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的。如果将num,name,sex,age,score和addr分别定义为互相独立的简单变量,难以反映它们之间的内在联系。原创 2025-08-04 13:56:19 · 646 阅读 · 0 评论 -
【时时三省】(C语言基础)有关指针的小结
( 2 )在C语言中,所有的数据都是有类型的,例如常量123并不是数学中的常数123,数学中的123是没有类型的,123和123.0是一样的,而在C语言中,所有数据都要存储在内存的存储单元中,若写成123,则认为是整数,按整型的存储形式存放,如果写成123.0,则认为是单精度实数,按单精度实型的存储形式存放。例如:已知变量为a为int型,& a为a的地址,它就包括以上3个信息,它代表的是一个整型数据的地址,int是& a的基类型(即它指向的是int型的存储单元)。有人认为指针是类型名,指针的值是地址。原创 2025-08-03 22:37:22 · 735 阅读 · 0 评论 -
【时时三省】(C语言基础)void指针类型
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省C 99允许使用基类型为void的指针类型。可以定义一个基类型为void的指针变量(即void*型变量),它不指向任何类型的数据。请注意:不要把“指向void类型”理解为能指向“任何的类型”的数据,而应理解为“指向空类型”或“不指向确定的类型”的数据。在将它的值赋给另一指针变量时由系统对它进行类型转换,使之适合于被赋值的变量的类型。例如:int a = 3;/ /定义a为整型变量/ / p1指向int型变量char * p2;原创 2025-08-01 13:01:19 · 737 阅读 · 0 评论 -
【时时三省】(C语言基础)动态内存分配与它的指针变量
全局变量是分配在内存中的静态存储区的,非静态的局部变量(包括形参)是分配在内存中的动态存储区的,这个存储区是一个称为栈(stack)的区域。除此以外,C语言还允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放。这些数据是临时存放在一个特别的自由存储区,称为堆( heap )区。可以根据需要,向系统申请所需大小的空间。原创 2025-07-31 12:30:06 · 319 阅读 · 0 评论 -
【时时三省】(C语言基础)指针数组作main函数的形参
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省指针数组的一个重要应用是作为main函数的形参。在以往的程序中,main函数的第一行一般写成以下形式:int main()或括号中是空的或有“void”,表示main函数没有参数,调用main函数时不必给出实参。这是一般程序常采用的形式。原创 2025-07-31 11:51:16 · 342 阅读 · 0 评论 -
【时时三省】(C语言基础)指向指针数据的指针变量
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省在了解了指针数组的基础上,需要了解指向指针数据的指针变量,简称为指向指针的指针。怎样定义一个指向指针数据的指针变量呢?下面定义一个指向指针数据的指针变量:char * * p;P的前面有两个*号。*运算符的结合性是从右到左,因此* * p相当于* ( *p ),显然*p是指针变量的定义形式。如果没有最前面的*,那就是定义了一个指向字符数据的指针变量。现在它前面又有一个*号,即char * * p。原创 2025-07-29 22:43:39 · 366 阅读 · 0 评论 -
【时时三省】(C语言基础)指针数组和多重指针
一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。下面定义一个指针数组:由于[]比*优先级高,因此p先与[ 4 ]结合,形成p [ 4 ]形式,这显然是数组形式,表示p数组有4个元素。然后再与p前面的“*”结合,“*”表示此数组是指针类型的,每个数组元素(相当于一个指针变量)都可指向一个整型变量。注意不要写成定义一维指针数组的一般形式为。原创 2025-07-27 22:17:08 · 298 阅读 · 0 评论 -
【时时三省】(C语言基础)返回指针值的函数
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。其概念与以前类似,只是返回的值的类型是指针类型而已。例如“int * a ( int x,int y );”,a是函数名,调用它以后能得到一个int*型(指向整型数据)的指针,即整型数据的地址。x和y是函数a的形参,为整型。请注意在“* a”两侧没有括号,在a的两侧分别为*运算符和( )运算符。而( )优先级高干x,因此a先与( )结合,显然这是函数形式。原创 2025-07-26 15:02:32 · 920 阅读 · 0 评论 -
【时时三省】(C语言基础)用指向函数的指针作函数参数
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省指向函数的指针变量的一个重要用途是把函数的入口地址作为参数传递到其他函数。指向函数的指针可以作为函数参数,把函数的入口地址传递给形参,这样就能够在被调用的函数中使用实参函数。它的原理可以简述如下:有一个函数(假设函数名为fun),它有两个形参( x1和x2 ),定义x1和x2为指向函数的指针变量。在调用函数fun时,实参为两个函数名f1和f2,给形参传递的是函数f1和f2的入口地址。这样在函数fun中就可以调用f1和f2函数了。原创 2025-07-26 12:53:40 · 521 阅读 · 0 评论 -
【时时三省】(C语言基础)怎样定义和使用指向函数的指针变量
定义指向函数的指针变量的一般形式为。原创 2025-07-24 22:27:30 · 454 阅读 · 0 评论 -
【时时三省】(C语言基础)指向函数的指针
如果在程序中定义了一个函数,在编译时会把函数的源代码转换为可执行代码并分配一段存储空间。这段内存空间有一个起始地址,也称为函数的入口地址。每次调用函数时都从该地址入口开始执行此段函数代码。函数名代表函数的起始地址。调用函数时,从函数名得到函数的起始地址,并执行函数代码。函数名就是函数的指针,它代表函数的起始地址。可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。例如:定义p是一个指向函数的指针变量,它可以指向函数类型为整型且有两个整型参数的函数。原创 2025-07-22 22:51:54 · 383 阅读 · 0 评论 -
【时时三省】(C语言基础)使用字符指针变量和字符数组的比较
如果定义了字符指针变量p,并使它指向数组a的首元素,则可以用指针变量带下标的形式引用数组元素(如p [ 5 ]),同样,可以用地址法(如*(p + 5))引用数组元素a[5]。( 1 )字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第1个字符的地址),绝不是将字符串放到字符指针变量中。( 6 )字符数组中各元素的值是可以改变的(可以对它们再赋值),但字符指针变量指向的字符串常量中的内容是不可以被取代的(不能对它们再赋值)。----CSDN 时时三省。原创 2025-07-21 21:45:12 · 198 阅读 · 0 评论 -
【时时三省】(C语言基础)字符指针作函数参数
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省如果想把一个字符串从一个函数“传递”到另一个函数,可以用地址传递的办法,即用字符数组名作参数,也可以用字符指针变量作参数。在被调用的函数中可以改变字符串的内容,在主调函数中可以引用改变后的字符串。原创 2025-07-20 21:58:23 · 967 阅读 · 0 评论 -
【时时三省】(C语言基础)通过指针引用字符串
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省如在printf函数中输出一个字符串。这些字符串都是以直接形式(字面形式)给出的,在一对双撇号中包含若干个合法的字符。使用字符串的更加灵活方便的方法——通过指针引用字符串。原创 2025-07-18 20:36:40 · 692 阅读 · 0 评论 -
【时时三省】(C语言基础)用指向数组的指针做函数参数
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省一维数组名可以作为函数参数,多维数组名也可作函数参数。用指针变量作形参,以接受实参数组名传递来的地址。可以有两种方法:①用指向变量的指针变量;②用指向一维数组的指针变量。原创 2025-07-17 21:37:43 · 920 阅读 · 0 评论 -
【时时三省】(C语言基础)通过指针引用多维数组2
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省。原创 2025-07-16 21:39:20 · 779 阅读 · 0 评论 -
【时时三省】(C语言基础)通过指针引用多维数组
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用方法上,多维数组的指针比一维数组的指针要复杂一些。原创 2025-07-15 22:05:20 · 284 阅读 · 0 评论 -
【时时三省】(C语言基础)用数组名作函数参数
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省可以用数组名作函数的参数。例如:array是实参数组名,arr为形参数组名。当用数组名作参数时,如果形参数组中各元素的值发生变化,实参数组元素的值随之变化。这究竟是什么原因呢?在学习指针以后,对此问题就容易理解了。先看数组元素作实参时的情况。原创 2025-07-14 18:40:57 · 511 阅读 · 0 评论 -
【时时三省】(C语言基础)通过指针引用数组元素2
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省。原创 2025-07-13 22:46:27 · 898 阅读 · 0 评论 -
【时时三省】(C语言基础)通过指针引用数组元素
山不在高,有仙则名。水不在深,有龙则灵。----CSDN 时时三省引用一个数组元素,可以用下面两种方法:( 1 )下标法,如a[i]形式;( 2 )指针法,如* ( a + i )或* ( p + i )。其中a是数组名,p是指向数组元素的指针变量,其初值p = a。原创 2025-07-11 23:09:52 · 370 阅读 · 0 评论
分享