C学习笔记

合集下载

(完整版)C++学习笔记

(完整版)C++学习笔记

endl换行符,也是std成员函数4).io流运算cout控制台输出—屏幕上终端窗口,带缓冲<<插入运算符cin控制台输入—键盘>>提取运算符5).名字空间Std:标准c++库所提供一切函数、对象、类型都隶属于std名字空间。

::-作用域限定符---名字空间“的”某个对象。

+= -=名字冲突:看作用域。

同一作用域不可使用相同名字。

----解决方法:成员前加名字空间名,中间::3.名字空间namespace 名字空间名{名字空间成员1;名字空间成员2;//名字空间成员可以是变量、函数、类型}名字空间名::名字空间成员1名字空间合并:同一个名字空间可以分别书写在不同的namespace子句中,只要它们的名字相同,仍然会被编译器识别为同一个名字空间。

Namespace名字空间名{名字空间成员1;}namespace名字空间名{名字空间成员2;}名字空间成员的声明和定义可以分开写,但是定义部分需要借助作用域限定符“::”指明所定义的成员隶属于哪个名字空间。

名字空间指令:using namespace名字空间名;名字空间指令以后的代码,对名字空间中的所有成员可见,可以直接引用,无需作用域限定符。

使用时要注意不要引入新的名字冲突。

名字空间声明:using名字空间名::名字空间成员;名字空间声明用于将名字空间中的特定标识符引入当前作用域,可以省略作用域限定符,直接引用之。

使用时注意不要因此引入新的名字冲突。

无名名字空间:不隶属于任何名字空间的标识符,编译器就将其缺省地放入无名名字空间。

对于无名名字空间中的成员,可以直接使用“::”进行访问。

名字空间允许多层嵌套,访问时需要逐层分解。

可利用名字空间别名简化名字空间嵌套路径的书写形式。

Using只能看里面一层。

4.结构、联合和枚举1)所有的类型关键字在声明变量时都可以省略。

struct Date{ //Date结构名int year; //成员变量(成员表列)(类型说明符成员名)int month;int day;void show(void)//成员函数{}};Int main(void){ //全局变量Date d = {2016,8,2},*e = &d;//e是指向d的指针d.show(); //“.”直接成员访问运算符e->show (); //“->”间接成员访问运算符return 0;}struct Date d = {2016,8,2};//C/C++Date d = {2016,8,2};//C++ //类型关键字省略2)C++中结构体可以包含函数(一个int四个字节,函数不放变量中,放代码区)成员函数的调用,前面要写“.”“->”定义结构体时不能同时初始化!3)C++中增加了匿名联合。

(完整)C语言 谭浩强学习笔记

(完整)C语言 谭浩强学习笔记

C语言谭浩强版笔记第一章程序设计和C语言1、计算机能直接识别和接受的二进制代码称为机器指令,机器指令的集合就是该计算机的机器语言。

2、语言的发展历史:①机器语言②符号语言③高级语言3、高级语言的发展:①非结构化语言②结构化语言③面向对象的语言4、C语言的祖先是BCPL语言5、在字符串中的//和/*都不作为注释的开始。

而是作为字符串的一部分。

【但是在vc++6.0中//显示编译错误】6、不要以为在max函数中求出最大值z后就会自动地作为函数值返回调用处,必须用return语句指定将哪个值作为函数值。

也不要不加分析地在所有函数后面都写上return 07、一个程序由一个或多个源程序文件组成8、全局声明:即在函数之外进行的数据声明,在函数外面声明的变量称为全局变量。

例如把int a,b,sum;放到main函数的前面9、函数是C程序的主要组成部分,编写C程序的工作主要就是编写一个个函数10、一个C语言程序是由一个或多个函数组成的,其中必须有且只有一个main函数11、一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中一个为main函数),若程序规模太大,可以使一个程序包含若干个源程序文件,每个源程序文件又包含若干个函数【一个源程序文件就是一个程序模块,一个程序分成若干个程序模块】12、在进行编译时是以源程序文件为对象进行的【分别对各源程序文件进行编译得到相应的目标程序,然后再将这些目标程序连接成为一个统一的二进制可执行程序】13、C语言的这种特点使得容易实现程序的模块化14、一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。

如果函数没有参数,可以写void或空括号【如int main(void)或int main()】15、void dump(){}它是一个空函数,但是是合法的16、程序总是从mian函数开始执行的,不管位置在哪儿17、程序中对计算机的操作是由函数中的C语句完成的18、二进制目标程序在visual C++中的后缀为.obj19、可执行程序在visual C++中的后缀为.exe20、一个源程序经过编译后得到的目标程序要经过连接阶段与函数库进行连接才能生成可执行文件21、程序设计的任务:①问题分析②设计算法③编写程序④对源程序进行编辑、编译和连接⑤运行程序,分析结果⑥编写程序文档第二章算法1、对数据的描述:在程序中要指定用到哪些数据类型以及这些数据类型和数据的组织形式,这就是数据结构。

C语言学习入门笔记之数组

C语言学习入门笔记之数组

数组笔记在程序设计中,把具有相同类型的若干变量按有序的形式组织起来。

这些按序排列的同类数据元素的集合称为数组。

在C语言中,数组属于构造数据类型。

一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。

因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

1.一维数组的定义和引用1.一维数组的定义方式在C语言中使用数组必须先进行定义。

一维数组的定义方式为:类型说明符数组名[常量表达式];其中:类型说明符是任一种基本数据类型或构造数据类型。

数组名是用户定义的数组标识符。

方括号中的常量表达式表示数据元素的个数,也称为数组的长度。

例如:int a[10]; 说明整型数组a,有10 个元素。

float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。

char ch[20]; 说明字符数组ch有20 个元素。

对于数组类型说明应注意以下几点:1)数组的类型实际上是指数组元素的取值类型。

对于同一个数组,其所有元素的数据类型都是相同的。

2)数组名的书写规则应遵循标识符命名规则。

3)数组名不能与其它变量名相同。

例如:main(){int a; float a[10];……}是错误的。

4)方括号中常量表达式表示数组元素的个数,如a[5]表示数组a 有5 个元素。

但是其下标从0 开始计算。

因此5 个元素分别为a[0],a[1],a[2],a[3],a[4]。

5)常量表达式中可以包括常量和符号常量,不能用变量来表示元素的个数,也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。

例如:#define FD 5 main(){int a[3+2],b[7+FD];……}是合法的。

但是下述说明方式是错误的。

main(){int n=5; int a[n];……}6)允许在同一个类型说明中,说明多个数组和多个变量。

C Primer Plus(第五版)学习笔记

C Primer Plus(第五版)学习笔记

C Primer Plus(第五版)学习笔记第一章概览1.1 C语言的起源记住Dennis Ritchie和Ken Thomson。

是在设计UNIX操作系统的时候开发的。

1.2 使用C语言的理由C是一种融合了控制特性的现代语言,而我们已发现在计算机科学的理论和实践中,控制特性是很重要的。

其设计使得用户可以自然地采用自顶向下的规划、结构化的编程,以及模块化的设计。

这种做法使得编写出的程序更可靠、更易懂。

C是一种高效的语言。

C程序往往很紧凑且运行速度快。

C是一种可移植语言。

由于C与UNIX的紧密联系,UNIX系统通常都带有一个C编译器作为程序包的一部分。

Linux中同样也包括一个C 编译器。

C强大而又灵活(计算机世界中经常使用的两个词)。

C面向编程人员的需要。

它允许您访问硬件,并可以操纵内存中的特定位。

它具有丰富的运算符供选择,让您能够简洁地表达自己的意图。

多数C实现都有一个大型的库,其中包含有用的C函数。

这些函数能够处理编程人员通常会面对的许多需求。

C的简洁性与其丰富的运算符相结合,使其可能会编写出极难理解的代码。

没有谁强迫您编写含糊难懂的代码,但存在这样的可能性。

试问,除C之外还有哪种语言存在一年一度的“含糊代码”(ObfuscatedCode)竞赛呢?1.3 C语言的发展方向不管C++和Java这些较新的语言如何流行,C在软件产业仍然是一种重要的技能,在最想获得的技能中,它一般都列在前10名。

特别是在嵌入式系统的编程中,C已开始流行。

也就是说,它将用来为汽车、照相机、DVD播放器和其他现代化设备中逐渐普及的微处理器编程。

同样,C已开始进入长期以来一直属于FORTRAN的科学编程领域。

最后,由于它是一种适合用来开发操作系统的语言,C在Linux的开发中也扮演着重要的角色。

1.4 计算机工作的基本原理CPU的工作非常简单,至少在我们所做的这一简短描述中是这样的。

它从内存中获取一个指令并执行该指令,然后从内存中获取下一个指令并执行。

c 语言学习笔记01

c 语言学习笔记01

1. c 语言1.1.1.helloworld文件名:test_pointer.c文件内容:#include <stdio.h>#include <malloc.h>int main(){printf("hello world\n\n");return 0;}编译加运行:[root@localhost c_study]# gcc test_pointer.c ;./a.outhello world1.1.2.获取键盘输入文件名:getKeyboardInptStr.c文件内容:#include <stdio.h>#include <malloc.h> int main(){char *a= malloc(sizeof(char *));char *b= malloc(sizeof(char *));scanf("%s",a);scanf("%s",b);printf("%s \t%s\n",a,b);free(a);free(b);return 0;}编译:gcc getKeyboardInptStr.c -o hello.exe运行[root@localhost tcp_ip]# ./hello.exe abcdddabc ddd[root@localhost tcp_ip]#1.1.2.1.从键盘输入构造数组文件名keyboard_input.c文件内容:#include <stdio.h>#include <malloc.h>int main(){char * strs[4];char *a;int i;for(i=0;i<4;i++){a= malloc(sizeof(char *));scanf("%s",a);strs[i]=a;//printf("%s \t\n",a);//free(a);}printf("=====================================\n");for(i=0;i<4;i++){printf("%s \t\n",strs[i]);}return 0;}1.1.3.读取文件读取文件有两个操作:打开流(fopen)和关闭流(fclose)#include <stdio.h>#include <stdlib.h>#include <malloc.h>int main(int ac,char**av){int exit_status=EXIT_SUCCESS;FILE *input;while( *++av!=NULL){input=fopen(*av,"r");if(input==NULL){perror(*av);exit_status=EXIT_FAILURE;continue;}if(fclose(input)!=0){perror("fclose");exit(EXIT_FAILURE);}}return exit_status;}1.1.3.1.打开文件流1.1.3.1.1.ungetc 用法文件名:ungetc_test.c文件内容:#include<stdio.h>#include<ctype.h>int main(){int value;int ch;value=0;while((ch=getchar())!=EOF && isdigit(ch)){value=value*10;value+=ch-'0';}//ungetc(ch,stdin);printf("%d\n",value);ch=getchar();printf("last char is %c\n",ch);return value;}若注释掉红色部分:[root@localhost read_file]# gcc ungetc_test.c;echo 234abc|./a.out 234last char is b否则:[root@localhost read_file]# gcc ungetc_test.c;echo 234abc|./a.out 234last char is a1.1.3.2.关闭流1.1.3.3.读取文本文件文件名称:read_file03.c文件内容:#include <stdio.h>#include <stdlib.h>#include <malloc.h>int main(){int value;int ch;char *input_file="ab.txt";FILE *input;input=fopen(input_file,"r");while((ch=fgetc(input))!=EOF){printf("%c",ch);}return 0;}1.2.指针1.2.1.取地址和取值取地址:&取值:*1.2.1.1.取地址int age=23;int *age_adrr=&age;1.2.1.2.取值参阅取地址。

【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!

【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!

【C语⾔C++编程学习笔记】基础语法,第⼀个简单的实例编程⼊门教程!C语⾔/C++编程学习:⼀个简单的实例如果你能知道该程序将会在显⽰器上显⽰⼀些内容,那说明你还是知道⼀些的!确实如此,但所要显⽰的确切内容不是显⽽易见的,所以请运⾏程序来观看结果。

⾸先,⽤你熟悉的编辑器建⽴⼀个上⾯这个样的程序,然后给这个程序取⼀个名字,并以 .c 作为结尾以满⾜所在系统对⽂件名格式的要求。

例如,你可以把它命名为 helloworld.c。

现在编译并运⾏该程序。

如果⼀切运⾏正常,其显⽰结果为:实例简单说明◆ #include ←包含另⼀个⽂件这是程序的第⼀⾏。

它的作⽤相当于你在⽂件中的这⾏所在的位置键⼊了⽂件 stdio.h 的完整内容。

实际上,它是⼀种剪切和粘贴操作,这样可以⽅便地在多个程序间共享公⽤的信息。

#include 语句是 C预处理指令的⼀个例⼦。

通常,C 编译器在编译前要对源代码做⼀些准备⼯作;这称为预处理。

stdio.h ⽂件作为所有 C编译包的⼀部分提供,它包含了有关输出输⼊函数的信息以供编译器使⽤。

这个名字代表标准输⼊输出头⽂件。

我们称之为头⽂件,C语⾔中通常都带有许多头⽂件。

◆ int main () ←函数名接下来的这⾏代码声明了⼀个 main函数。

⼀个 C语⾔程序总是从称为 main()的函数开始执⾏的。

你可以对你所⽤的其他函数任意命名,但是 main()必须是开始的函数,所以说,main()函数在程序中是唯⼀的。

那么圆括号的功能呢?它们表明 main()是⼀个函数。

以后你将了解到更多的函数。

但现在,请你记住这个函数是 C程序的基本模块。

int 指明了 main()函数的返回类型。

这意味着 main()函数返回值的类型是整数。

返回到哪⾥呢?返回给操作系统。

如果浏览⽼版本的 C代码,你将发现程序常常以:main()这种形式开始。

C90标准勉强允许这种形式,但是 C99标准不允许。

因此即使你当前的编译器允许,也不要这么做,请注意规范。

C语言学习笔记(004)-数组名和数组首地址(转)

C语言学习笔记(004)-数组名和数组首地址(转)

C语⾔学习笔记(004)-数组名和数组⾸地址(转)⼀个变量有地址,⼀个数组包含若⼲元素,每个数组元素都在内存中占⽤存储单元,它们都有相应的地址。

指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数据起始地址或某⼀元素的地址放到⼀个指针变量中)。

所谓数组的指针是指数组的起始地址,数组元素的指针数组元素的地址。

这种指针变量的定义与以前介绍的指向变量的指针变量相同。

应当注意,如果数组为int型,则指针变量亦应指向int型。

规定数组名代表数组的⾸地址,也就是第⼀个元素的地址。

因此,下⾯两个语句等价:p=&a[0];p=a;注意数组a不代表整个数组,上述"p=a;"的作⽤是"把a数组的⾸地址赋给指针变量p",⽽不是"把数组a各元素的值赋给p"。

在定义指针变量时可以赋给初值:int*p=&a[0];它等效于:int*p;p=&a[0];当然定义时也可以写成int*p=a;它的作⽤是将a的⾸地址(即a[0]的地址)赋给指针变量p(⽽不是*p)。

假设p已定义为指针变量,并已给它赋了⼀个地址,使它指向某⼀个数组元素。

如果有以下赋值语句: *p=1;表⽰对P当前所指向的数组元素赋以⼀个值(值为1)。

C规定对p+1指向数组的下⼀个元素(⽽不是将p值简单地加1)。

如果p的这初值为&a[0],则: (1)p+i和a+i就是a[i]的地址,或者说,它们指向a数组的第i个元素。

(2)*(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即a[i]。

(3)指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。

根据以上叙述,引⽤⼀个数组元素,可以⽤: (1)下标法,如a[i]形式; (2)指针法,如*(a+i)或*(p+i)。

要输出各元素的值有三种⽅法:○1下标法○2通过数组名计算数组元素地址,找出元素的值。

○3⽤指针变量指向数组元素。

翁凯c语言笔记

翁凯c语言笔记

翁凯c语言笔记
翁凯是一位热爱编程的学生,他在学习C语言的过程中积累了很多宝贵的经验和知识。

下面是他的一些C语言学习笔记,希望对大家有所帮助。

1. 基础语法:C语言是一种结构化的编程语言,具有丰富的数据类型和运算符。

翁凯通过学习基础语法,掌握了变量的声明和赋值、控制语句、循环语句等基本概念。

2. 函数与模块化编程:C语言通过函数的调用来实现模块化编程,提高了代码的可读性和可维护性。

翁凯学会了如何定义和调用函数,并且学习了递归函数的使用。

3. 数组与指针:在C语言中,数组和指针是非常重要的概念。

翁凯弄清楚了数组和指针之间的关系,并学会了如何使用它们进行内存管理和数据操作。

4. 结构体与文件操作:C语言中的结构体可以用来存储不同类型的数据,翁凯学会了如何定义和使用结构体,并且掌握了文件的读写操作,可以将结构体数据保存到文件中。

5. 动态内存分配:C语言提供了动态内存分配的功能,翁凯学会了
使用malloc()和free()函数来进行内存管理,避免了内存泄漏和内存溢出的问题。

6. 编程技巧与调试:除了学习语法和基本概念,翁凯还注重培养编程技巧和调试能力。

他学会了使用调试工具和技巧,解决程序中的bug,并且善于利用注释、缩进和命名规范来提高代码的可读性。

翁凯通过不断学习和实践,逐渐掌握了C语言的基本知识和技巧。

他深知编程需要不断练习和积累,因此他坚持每天都进行编程练习,并且参与了一些开源项目,与其他开发者交流经验。

翁凯相信,只有不断学习和实践,才能成为一名优秀的C语言程序员。

C语言学习笔记-LED

C语言学习笔记-LED

1.#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器2.3.sbit led=P0^0; //将单片机的P0.0端口定义为led4.5.void main()6.{7.led=0; //P0.0端口设置为低电平8.while(1);9.}这是一个点亮LED灯的程序,下面对此进行解析#include "reg52.h"# 符合表明这一行是在编译器接手前由c预处理器处理的语句#include 语句是c预处理器指令Reg52.h 单片机头文件,此文件中定义了单片机的一些特殊功能寄存器10.sbit led=P0^0; //将单片机的P0.0端口定义为ledsbit是定义特殊功能寄存器的位变量11.void main()12.{13. while(1);14.}Main是一个普通的名字,其他函数可以随意命名但是主函数不行,它是唯一的选择。

()的功能则是表示main()是一个函数很快您就会学到更多的函数,但现在,就请记住这个函数是C程序的基本模块Void则是函数类型,中文翻译是无类型。

但是慢慢学习后就会发现有些函数的类型是int 或者是 char{} 花括号,它划定了main函数的界线。

通常,所有的C函数都是使用花括号来表示函数体的开始与结束。

{}花括号,[]中括号,()小括号的作用是不一样的,不要混淆。

1.#include <reg52.h> //51头文件2.#include <intrins.h>//包含循环右移函数_cror头文件3.4.#define uchar unsigned char //宏定义5.#define uint unsigned int //宏定义6.7.sbit LED1 = P1^0; //位定义LED1硬件接口8.uchar i; //申明循环计数变量9.uchar temp;//P1口状态暂存变量10.11.//毫秒级延时函数12.void delay(uint z)13.{14.uint x,y;15.for(x=z;x>0;x--)16.for(y=120;y>0;y--);17.}18.19.//主函数20.void main()21.{22.temp = 0x7f; //定义LED灯初始状态,从LED8开始亮23.P1 = temp; //赋值给P1,点亮LED824.delay(1000); //延时1000毫秒25.while(1) //大循环26.{27.for(i = 0; i < 8; i++)28.{29.temp = _cror_(temp,1);//循环右移,LED从左至右点亮30.P1 = temp;31.delay(1000);32.}33.}34.}“#define uchar unsigned char”是表示之后代码中的“uchar”全部代表“unsigned char”,并且是在执行编译预处理时就进行了实际的替换操作。

C学习笔记一C语言和汇编语言的区别

C学习笔记一C语言和汇编语言的区别

C学习笔记一C语言和汇编语言的区别C语言和汇编语言是计算机编程中常见的两种语言,它们在编写程序时有着不同的特点和用途。

本文将从语法、可读性、抽象程度以及机器依赖性等方面对C语言和汇编语言进行比较,以帮助读者更好地理解它们之间的区别。

1. 语法差异C语言是一种高级编程语言,它采用类似英语的结构化语法,具有丰富的语法特性,包括变量、数组、条件语句、循环语句和函数等。

C语言的语法相对简洁,能够快速实现一些功能。

而汇编语言是一种低级编程语言,使用各种助记符和符号来表示机器指令、寄存器和内存访问等,需要编写者有较强的硬件知识和技巧。

相比C语言,汇编语言更接近计算机底层,更加底层、精简和直接。

2. 可读性和可维护性C语言的语法结构和语义更加接近自然语言,代码具有较好的可读性和可维护性。

由于C语言的抽象程度较高,程序员可以更快速地理解代码,并进行修改和维护。

同时,C语言具有模块化的特点,程序可以按模块进行组织,便于团队协作开发。

相比之下,汇编语言的语法和符号较为晦涩,阅读和理解汇编代码需要具备较深的计算机体系结构和指令集的知识。

汇编语言编写的程序通常较为底层,代码行数相对较多,可读性和可维护性较差,需要更高的技术水平和耐心。

3. 抽象程度C语言是一种高级语言,提供了丰富的语法特性和抽象层次,为程序员提供了更方便和高效的编程方式。

C语言可以在不同的计算机平台上进行移植,并且可以通过调用库函数实现复杂的操作,具备良好的抽象能力。

汇编语言是一种低级语言,提供了直接操作硬件的能力。

汇编程序员可以直接访问寄存器、内存等底层资源,实现对计算机的精细控制。

汇编语言相对于C语言来说更接近机器语言,具有更高的执行效率和更大的灵活性。

4. 机器依赖性C语言是一种面向过程的编程语言,编写的程序相对独立于具体的硬件平台,具有较好的可移植性。

通过编译器的编译,C语言可以在不同的操作系统和计算机上运行。

汇编语言则直接操作底层的机器指令和寄存器,与具体的硬件平台密切相关,不同的计算机架构和操作系统可能需要不同的汇编代码。

C语言基础学习笔记

C语言基础学习笔记

C语言基础学习笔记(第一版修改)丁炳亮1数据类型和表达式1.1计算机内数据存储方式理解与测试:什么是补码?我们得先知道模的概念。

模“模”是指一个计量系统的计数范围。

如时钟等。

计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。

例如:时钟的计量范围是0~11,模=12。

表示n位的计算机计量范围是0~2^(n)-1,模=2^(n)。

“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。

任何有模的计量器,均可化减法为加法运算。

例如:假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;另一种是顺拨8小时:10+8=12+6=6在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。

对“模”而言,8和4互为补数。

实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。

共同的特点是两者相加等于模。

二进制中整数的补码求法是:正数的补码为原码,负数的补码是符号位不变其他位全部取反再整个数加1。

我们可以通过下面的代码看下负整数在计算机内部的表示。

void f(int n){unsigned int i;for(i=1,i<<=15;i;i>>=1){if(i&n)printf("1");elseprintf("0");}printf("\n");}main(){int a=-0xff;f(a);getch();}输出的结果是1111111100000001。

1.2变量与常量理解与测试:1)类型声明在计算机内部数据是以字节为单位存储的,但是我们需要的数据类型有很多种,每种数据类型所占字节和存储方式都不一样。

类型声明的作用就是告诉计算机以哪种“格式”去读写该数据数据。

类型说明符变量名1,变量名2......,变量名n;类型说明符有基本类型(字符型、整数型、单/双精度型)、高级类型(结构体型、共用体型、枚举类型)、指针型等,其中指针类型包括指向基本类型的指针类型、指向高级类型的指针型和指向函数的指针类型(指向函数指针声明格式在后面章节)。

C语言学习入门笔记之结构体与共用体

C语言学习入门笔记之结构体与共用体

结构体与共用体笔记定义结构体C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体(structre)。

在其他一些高级语言中称为“记录”.定义后的结构体类型和系统提供的标准类型(如int, char, float, double 等)具有相似的作用,都可以用来定义变量,只不过int等类型是系统已声明的,而结构体类型是由用户根据需要在程序中指定的。

定义一个结构体类型的一般形式为:struct 结构体名{ 成员表列};注意:1.结构体类型的名字是由一个关键字struct和结构体名组合而成的(例如struct Student) ,结构体名是由用户指定的,又称“结构体标记”,以区别于其他结构体类型。

上面的结构体声明中Student就是结构体名(结构体标记)。

2.花括号内是该结构体所包括的子项,称为结构体的成员。

“成员表列"(member list)也称为“域表”(field list),成员表列由若干个成员组成,每一个成员是结构体中的一个域。

对每个成员也必须作类型说明,其形式为:类型说明符成员名;成员名的命名应符合标识符的书写规定。

例如:struct stu{int num;char name[20];char sex;float score;};3.一个结构体的成员可以属于另一个结构体类型(嵌套)。

例如:struct Date //声明一个结构体类型struct Date{ int month;//月int day;//日int year;//年}struct Student//声明一个结构体类型struct Student{ int num;char name[20];char sex;int age;struct Date birthday;//成员birthday属于struct Date 类型char addr[30];};结构体类型变量1.定义结构体类型变量说明结构变量有以下三种方法。

c primer学习笔记

c primer学习笔记

C Primer始于2014-11-12文字颜色说明:1)正文中的黑色粗字体表示首次看时,觉得比较重要的文字2)正文中的红色表示,复习笔记后添加的知识点ANSI(American National Standards Institute) 美国国家标准协会第13章文件输入输出13.1 和文件进行通信13.1.1 文件是什么C将文件看成是连续的字节序列,其中每一个字节都可以单独的读取;13.1.2 文本视图和二进制视图二进制视图中,每一个字节都可以为程序所访问;文本视图中,不同的操作环境(操作系统),程序所看到的内容和文件有可能不同(例如行尾的标志)13.1.4 标准文件C语言提供3种标准文件。

标准输入、标准输出、标准错误输出;✧标准输入:getchar()、gets()、scanf()✧标准输出:putchar()、puts()、printf()13.2 标准I/O13.2.1 检查命令行参数return 0 与exit(0)的区别:✧最初调用的main函数中二者是一样的,main在一个递归程序中时,exit()会终止程序,而return只返回递归的前一级。

✧在main函数以外的函数中调用exit也会终止程序13.2.2 fopen()函数fopen(参数1,参数2)✧参数1:是一个地址(指针或数组),数组中包含要打开的文件名✧参数2:是一个字符串,指定打开文件的模式。

有以下7大类模式1)“r”打开一个文本文件,可以读取文件2)“w”打开一个文本文件,可以写入文件,先将文件长度截为0。

若该文件不存在,先创建3)“a”打开一个文本文件,向已有文件的尾部追加内容。

若不存在,先创建4)“r+”打开一个文本文件,可以进行更新,也可以读取和写入5)“w+”打开一个文本文件,可以进行更新(读取和写入)。

先将文件长度截为0,没有则先创建6)“a+”打开一个文本文件,可以进行更新(读取和写入),读取整个文件,写入时只能向尾部追加内容✧返回:fopen函数返回一个文件指针fp,这个指针指向FILE(stdio.h中定义的一种派生类型),fp指向关于文件的信息的数据包。

C语言学习笔记(1)

C语言学习笔记(1)

VC++6.0学习笔记进入方法:1、建立一个工程文件——新建——(选择)工程——(选择)Win32 Console Application——位置(选择存贮的位置)——工程名称(要用字母、英文、或拼音都可以)——一路确定到完成2、建立一个文件文件——新建——(选择)文件——(选择)C++Source File——文件名(要用字母、英文、或拼音都可以)——确定一、一个简单的程序:#include <stdio.h>main(){printf("Hello everyone!!\n"); (\n表示换行)}注意:每写完一个程序必需先编译(快捷键是:ctrl+F7)然后再输出(快捷键是ctrl+F5)程序:连续执行的一条条指令的集合称为“程序”对于计算机来说,它不能识别由高级语言编写的程序,它只能接受和处理由0和1的代码构成的二进制指令或数据,由于这种形式的指令是面向机器的,因此也被称为“机器语言”所以所有的高级语言编写的程序都要经过编译,编译成二进制代码,这种具有翻译功能的软件称为编译程序。

1.1.2程序设计1、确定数据结构:就是数也数这间的关系列。

2、确定算法:3、编码:4、在计算机上调试程序:5、整理并写出文档资料:1.2算法定义:是指为了解决某个特定的问题而采取的确定且有限的步骤。

1、有穷性2、确定性3、可行性4、有零个或多个输入5、有一个或多个输出1.3结构化程序设计模快化结构结构化程序由三种基本的结构组成1、顺序结构2、选择结构3、循环结构(分为单性循环、直道循环)练习题:1、计算机能直接执行的程序是()A)源程序B)目标程序C)汇编程序D)可执行程序源程序:由高级语言编写的代码叫做源程序。

2、以下叙实中正确的是A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用的数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整一个简单的程序#include <stdio.h>main(){double a,b,area;a=1.2,b=3.6; /*将矩形的两条边长分别赋给a和b变量*/area=a*b;printf("a=%f,b=%f,auea=%f\n",a,b,area);/*输出矩形的两条边长和面积*/}主意:C语言中一定要区分大小写字母。

c语言学习笔记

c语言学习笔记

c语言学习笔记第一章基础一、函数是c语言的基本单位,一个程序有一个或多个函数组成,且必须包含main函数(有且只有一个)二、程序总是从main函数开始执行三、c语言的3种基本结构是顺序结构、选择结构、循环结构四、//表示单行注释五、/* */表示块注释第二章常量定义:其值不能被改变的量叫常量一、整形常量例如:100,十进制数100-16,十进制数-1607,八进制数7-036,八进制数-36,等价于十进制数-300x19,十六进制数19,等价于十进制数25-0x2f,十六进制数-2f,等价于十进制数-47二、实型常量例如:3.5,double型常量2e3,double型常量-2e-1,double型常量6. double型常量,等于6.0.3 double型常量,等于0.62.5f float型常量三、字符常量1、普通字符:用‘’单撇号括起来的一个字符,如‘a’,‘9’2、转义字符:以\开头的字符,如\n,换行\t,tab键\\,单斜杠\\61,61是八进制数,等于十进制数49,即字符‘1’\x62,62是十六进制数,等于十进制98,既字符‘b’四、字符串常量用“”双撇号括起来的若干字符例如:“abc”,“”,“a”五、符号常量用#define指令指定的常量例如:#define PI 3.1415827第三章变量一、必须先定义(声明),后使用二、必须是一个合法的标识符三、一个合法的标识符必须满足以下3个条件1、只由字母、数字、_(下划线)三种字符组成2、首字符不能是数字3、不能与c语言的保留字冲突,如void,int等都是保留字四、数据类型1、字符型:char 如‘a’,‘\101’,‘\x41’,‘\n’2、整型:short(短整型)如:2,3,-5int(整型)如:3,89,-7long(长整型)如3l,0L前面可以加修饰符signed(有符号的)或unsigned(五符号的)例如:signed int,有符号整形unsigned int,无符号整形3、实型:float:如3.4fdouble:如4.2,1e2五、不同类型间数据的混合运算1、+,-,*,\运算中,只要有一个为float或double,结果为double型2、int与float或double运算,int、float都转换为double3、char与int运算,char转换为int4、char与float或double运算,char转换为double六、常用ASCII码‘0’=30H=48 ,1到9依次+1类推‘a’=61H=97 ,b到z依次+1类推‘A’=41H=65 ,B到Z依次+1类推第四章运算符一、常用运算符1、算术:+,-,*,/,%2、关系:>,<,>=,<=,==,!=3、逻辑:!,&&,||4、赋值:=,+=,-=,*=,/=,%=5、逗号运算符:,说明:1、关系和逻辑运算的结果只有两个,要么为真,要么为假2、C语言中0表示假,非0表示真3、c语言中将真赋值给其他变量时,其值为1二、优先级1、算术>关系>逻辑>赋值>逗号2、!(非)优先于算术3、*,\,% 优先于+,-4、>,<,>=,<=, 优先于==,!=5、&& 优先于||6、同级别运算符一般都是自左向右结合例如:a*b/c*e,等价于((a*b)/c)*e7、赋值运算符是自右向左结合例如:a=b=c=1,等价于a=(b=(c=1))三、自增(++),自减(--)1、i++,++i独立使用时没有区别,都等价于i=i+12、i--,--i独立使用时没有区别,都等价于i=i-13、i++,++i在其他语句中使用时是有区别的,i++,先使用i,再i=i+1例如:y=x++;等价于y=x;x=x+1;++i,先i=i+1,再使用i例如:y=++x;等价于x=x+1;y=x;4、i--,--i的区别等同i++,++i5、特殊情况1:0 && i++语句中,i++永运不执行6、特殊情况2:0 && ++i语句中,++i运不执行7、特殊情况3:1|| i++语句中,i++永运不执行8、特殊情况4:1|| ++i句中,++i运不执行9、特殊情况5:a++,b++,a+b语句中,先执行a=a+1,再执行b=b+1,最后a+b四、赋值1、+=,-=,*=,/=等复合赋值语句的优先级等同于=2、a+=3+4等价于a+=(3+4)3、a=b=c=4;等价于b=c;a=b;五,逗号运算符1、运算方向是自左向右例如:a++,b++,a+b等价于a++;b++;a+b;2、逗号表达式的结果为最后一个表达式的值例如:执行x=(3,4,5,6);后x=6第五章语句一、表达式:通过各种运算符将常量或变量连起来的式子就是表达式二、表达式后加;分号,构成语句三、空语句,只有一个;分号的语句四、复合语句,{。

C语言学习笔记(4)基础篇--ifelse语句

C语言学习笔记(4)基础篇--ifelse语句

C语⾔学习笔记(4)基础篇--ifelse语句if 格式:if (条件)语句;1. 条件可以是任何表达式,变量,常量2. 判断条件的真假,真则执⾏后⾯的⼀个分句,假不执⾏后⾯的⼀个分句3. 若想控制多⾏语句,⽤⼤括号括起来 流程图 如if条件为真执⾏b++,假则跳过控制下的⼀⾏分句。

输出结果a为0是因为在if条件⾥a被赋值0eg1: ⽐较两个数的⼤⼩,若a>b,则a、b互换,并且输出,否则a、b原始值输出,⽤单分⽀选择结构完成 //a=2,b=3让ab的值互换 看起来没有达到我们想要的效果。

程序表达的是顺序执⾏的动作,⽽不是关系,这⾥的a=b,b=a是依次执⾏的,结果使得a和b都得到b 原来的值 我们需要⼀个新的变量else else⼦句不能作为语句单独使⽤,它必须是if语句的⼀部分,与if配对使⽤ 格式:if(条件)语句1; else语句2; 流程图 判断条件的真假,为真执⾏语句1,为假执⾏else的语句2。

else也只控制后⾯的⼀个分句,若想控制多个分句,加上⼤括号。

若看不懂为什么等于6,那么看⼀下ab的值是什么 ⾃增⾃减本⾝具有赋值过程if else嵌套 流程图 嵌套的if 第⼀种: if(条件1) if(条件2) if(条件3) ... 第⼆种 if(条件1) if(条件2) ... else ... 第三种 if(条件1) if(条件2) else... else... 看⼀下⼆、三种 //先判断第⼀个if,为假则跳过整个判断,进⼊输出语句。

//还是上⾯那个例⼦,若你想让第⼀个if做判断之后结果为假执⾏else语句,那么把第⼀个if和else⽤缩进做对齐格式,看看这么写对不对 //出错了,没有得要想要的结果。

在C语⾔⾥,缩进格式不能暗⽰else的匹配。

C是有类型的语⾔,强调类型,对类型检查严格,不像python,js等不看重类型。

应该这样写 //⽤⼤括号括起来,else总是与其上⾯最近的未配对的if配对。

C语言学习入门笔记之函数

C语言学习入门笔记之函数

函数笔记1.为什么要用函数函数就是功能。

每一个函数用来实现一个特定的功能。

函数的名字应反映其代表的功能。

1.一个C程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。

对较大的程序,一般不希望把所有内容全放在一个文件中,而是将它们分别放在若干个源文件中,由若干个源程序文件组成一个C程序。

这样便于分别编写和编译,提高调试效率。

一个源程序文件可以为多个C程序共用。

2.一个源程序文件由一个或多个函数以及其他有关内容(如指令、数据声明与定义等)组成。

一个源程序文件是一个编译单位,在程序编译时是以源程序文件为单位进行编译的.而不是以函数为单位进行编译的。

3.C程序的执行是从main函数开始的.如果在main函数中调用其他函数,在调用后流程返回到main函数,在main函数中结束整个程序的运行。

4.所有函数都是平行的.即在定义函数时是分别进行的,是互相独立的。

一个函数并不从属于另一个函数,即函数不能嵌套定义。

函数间可以互相调用,但不能调用main函数。

main 函数是被操作系统调用的。

5.函数的分类:从用户使用的角度看,函数有两种。

①库函数,它是由系统提供的,用户不必自己定义,可直接使用它们。

②用户自己定义的函数。

它是用以解决用户专门需要的函数。

从函数的形式看,函数分两类。

①无参函数。

在调用无参函数时,主调函数不向被调用函数传递数据。

无参函数一般用来执行指定的一组操作。

无参函数可以带回或不带回函教值.但一般以不带回函数值的居多。

②有参函数。

在调用函数时,主调函数在调用被调用函数时,通过参数向被调用函数传递数据。

一般情况下,执行被调用函数时会(返回)得到一个函数值,供主调函数使用。

此时有参函数应定义为与返回值相同的类型。

2.怎样定义函数1.为什么要定义函数C语言要求在程序中用到的所有函数,必须“先定义,后使用”。

定义函数应包括以下几个内容:(1) 指定函数的名字,以便以后按名调用。

(2) 指定函数的类型,即函数返回值的类型。

专升本 c语言笔记

专升本 c语言笔记

专升本 c语言笔记
以下是一些专升本C语言学习笔记:
1. C语言概述:了解C语言的起源、特点和基本语法,如数据类型、运算符、控制结构等。

2. 数据类型:包括整型、浮点型、字符型等,了解不同数据类型的取值范围和表示方法。

3. 运算符:掌握算术运算符、关系运算符、逻辑运算符等的用法,理解优先级和结合性。

4. 流程控制:掌握顺序、选择和循环结构,如if语句、switch语句、while 语句和for语句等。

5. 函数:理解函数的概念和作用,掌握函数的定义、声明和调用,理解函数的返回值和参数传递方式。

6. 数组:了解一维和多维数组的概念和用法,理解数组的初始化和访问方式。

7. 指针:理解指针的概念和作用,掌握指针的声明、初始化和使用方法,理解指针与数组的关系。

8. 结构体:理解结构体的概念和作用,掌握结构体的定义、初始化和使用方法,理解结构体与指针的关系。

9. 文件操作:了解文件的概念和作用,掌握文件的打开、读写和关闭方法。

10. 常见错误分析:了解常见的C语言错误类型和解决方法,如语法错误、逻辑错误等。

以上是专升本C语言学习笔记的简要概述,具体的笔记内容需要根据个人学习情况和教材内容进行整理和完善。

C语言学习笔记

C语言学习笔记

1.我们把由高级语言编写的程序称为“源程序”2.把由二进制代码表示的程序称为“目标程序”,这些具有翻译功能的软件称为“编译程序”,每一种高级语言都有与它相应的编译程序。

C语言源程序经达C语言编译程序编译之后生成一个后缀为.OBJ 的二进制文件(称为目标文件),最后还要由称为“链接程序”(link)的软件,把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为EXE的可执行文件。

3.算法是指为解决某个特定问题而采取的确定且有限的步骤。

一个算法应当具有以下五个特性:1.有穷性。

一个算法应当包含有限个步骤。

也就是说,在执行若干个操作步骤之后算法将结束,而且每一步都在合理的时间内完成。

2.确定性。

算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的结果。

3.可行性。

算法中指定的操作,都可以通过已经实现的基本运算执行有限次后实现。

4.有零个或多个输入。

在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些数据对象需要通过输入得到。

5.有一个或多个输出。

算法的目的是为了求解,这些解只有通过输出才能得到。

算法可以用各种描述方法进行描述,最常用的是伪代码和流程图。

伪代码是一种近似高级语言但又不受语法约束的一种语言描述方式,这在英语国家中使用起来非常方便。

4.结构化程序由三种基本结构组成。

一、顺序结构。

当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,没有分支,没有转移。

二、选择结构。

if语句,switch语句都可构成选择结构。

三、循环结构。

有两种当型循环和直到型循环。

已经证明,由三种基本结构组成的算法结构可以解决任何复杂的问题。

由三种基本结构所构成的算法称为结构化算法。

由三种基本结构所构成的程序称为结构化程序。

C语言既具有高级语言的一切功能,也具有低级语言的一些功能,因此它既可以编写系统软件,也可以用来编写应用软件。

main是主函数名,C语言规定必须用main作主函数名。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#关键字as:一个转换操作符,如果转化失败,就返回null;base:用于访问被派生类或构造中得同名成员隐藏的基类成员;bool:表示布尔值的简单类型;break:用于从loop或switch语句中推出得跳转语句;byte:表示8位长度无符号整数的简单类型;case:指定在switch语句中的一个标签。

如果标签中指定的常量与switch表达式的值匹配,与标签关联的语句就被执行;catch:定义一个代码块,在特定类型异常抛出时,执行块内代码。

参加try和finally;char:表示16位Unicode字符的简单类型;checked:既是操作符又是语句。

确保编译器和运行时检查整数类型操作或转换时出现的溢出;class:指明一个声明得类类型声明;const:标识一个可在编译时计算出来的变量值,即一经指派不可修改得值;continue:用于返回循环顶部的跳转语句;decimal:表示128位高精度十进制数的简单类型;default:在switch语句中,指定一组语句,如果前面没有匹配得case子句,就执行这些语句;delegate:指定一个声明为一种委托类型。

委托把方法封装为可调用实体,能在委托实体中调用;do:一个条件语句,无论条件是否满足,都执行至少一次;double:表示64位双精度浮点值得简单类型;else:if条件语句的一部分,如果条件不为真则执行else后面的语句。

enum:表示一个已命名常量群集得值类型;event:允许一个类或对象提供通知得成员,它必须是委托类型;explicit:一个定义用户自定义转换操作符的操作符,通常用来将内建类型转换为用户定义类型或反向操作。

必须在转换时调用显式转换操作符;extern:标识一个将在外部(通常不是C#语言)实现的方法;false:一个布尔字面值;finally:定义一个代码块,在程序控制离开try代码块后执行。

参见try和catch关键字;fixed:在一个代码块执行时,在固定内存位置为一个变量指派一个指针;float:表示32位单精度浮点值得简单类型;for:定义一个循环语句,只要指定条件满足就继续执行;foreach:用于遍历一个群集的元素;goto:一个跳转语句,将程序执行重定向到一个标签语句;if:一个条件语句,根据一个布尔表达式的值选择一个语句执行;implicit:一个操作符,定义一个用户定义的转换操作符。

通常用来将预定义类型转换为用户定义类型或反向操作。

隐式转换操作符必须在转换时使用;in:foreach语句遍历语法的一部分,被放在变量名与要遍历的群集之间;interface:将一个声明指定为接口类型,即实现类或构造必须遵循的合同;internal:一个访问修饰符。

内部代码元素只可由同一装配件内的其他类型访问。

装配件可以是DDL或EXE文件;is:比较两个对象类型得比较操作符;lock:用在多线程程序中,为变量设置一个互斥锁(mutex);long:表示64位带符号整数值的简单类型;namespace:定义一个逻辑组的类型和命名空间;new:用于调用构造器的操作符。

同时,也是一个修饰符,用来隐藏而非重载拥有同样签名得一个继承方法;null:表示引用类型中等同于0的字面值;object:一个预定义引用类型,表示所有引用类型得终极基类。

也是预定义类型System.Object的别名;operator:用来声明或多载一个操作符;out:标识一个参数值会受影响得参数,但在传入方法时,该参数无需先初始化;override:一个修饰符,表明一个方法将覆载一个虚方法或抽象方法,或一个操作符将覆载基类中定义的同名操作符;params:声明一个参数数组。

如果使用,必须修改指定的最后一个参数。

允许可选参数;private:一个访问修饰符。

私有成员只能在定义该成员得类型内部访问;protected:一个访问修饰符。

保护成员只能在定义该成员得类型或派生类型中的访问;public:一个访问修饰符。

公有成员可以在定义该成员得类或命名空间内外自由访问;readonly:标识一个变量的值在初始化后不可修改;ref:标识一个参数值可能会受影响的参数;return:一个用于跳出方法的跳转语句。

执行返回到方法调用者;sbyte:表示8位带符号整数的简单类型;sealed:类使用sealed可以防止其它类继承此类;声明方法使用sealed可以防止扩充类重写该方法;short:表示16位带符号整数值的简单类型;sizeof:一个操作符,以byte为单位返回一个值类型的长度;stackalloc:返回在堆上分配的一个内存块的指针;static:静态成员与它在其中被声明得类型相关联,而不是与类型得实体相关联;string:一个表示Unicode字符串得预定义引用类型。

是System.String预定义类型的别名;struct:是一种值类型,可以声明常量、字段、方法、property、索引器、操作符、构造器和内嵌类型;switch:一个选择语句,它执行与表达式匹配标签相关联的语句列表;this:引用一个类型的当前实体;throw:导致抛出一个异常;true:一个布尔字面值;try:异常处理代码块得组成部分之一。

try代码块包括可能会抛出异常的代码。

参阅catch 和finally关键字;typeof:一个操作符,返回传入参数的类型;uint:表示32位无符号整数值的简单类型;unchecked:禁止溢出检查;unsafe:标注包含指针操作得代码块、方法或类;ushort:表示16位无符号整数值的简单类型;using:当用于命名空间时,using关键字允许访问该命名空间中的类型,而无需指定其全名。

也用于定义finalization操作的范围;virtual:一个方法修饰符,标识可被覆载的方法;void:无返回值方法的返回类型;volatile:标识一个可被操作系统、某些硬件设备或并发线程修饰的attribute;while:while条件语句根据条件执行一个语句零次或多次。

do语句中的while部分指定循环中止条件。

C#文件操作基础在.NET Framework中进行的所有的输入和输出工作都要使用到流。

流是串行化设备的抽象串行化设备可以以线性方式存储数据,并可以以同样的方式访问:一次访问—个字节。

此设备可以是磁盘文件、打印机、内存位置和或任何其他支持以线性方式读写的对象。

当向某些外部目标写数据时,就要用到输出流,这可以是物理磁盘文件、网络位置、打印机或其他程序。

常用的类:File------实用类,提供许多静态方法,用于移动、删除、和复制文件。

Directory------实用类,提供许多静态方法,用于移动、删除和复制目录。

Path------实用类,用于处理路径名称。

FileInfo------表示磁盘上的物理文件,具有可以处理此文件的方法,要完成对文件的读写工作,就必须创建Stream对像。

DirectoryInfo------表示磁盘上的物理目录,具有可以处理此目录的方法FileStream-------表示可以被写或被读,或二者都可的文件,此文件可以同步或异步读和写StreamReader------从流中读取字符数据,并可通过使用FileStream被创建为基类。

StreamWriter------向流写字符数据,可通过使用FileStream被创建为基类。

FileSystemWatcher---- FileSystemWatcher是用于监控文件和目录,并在这些位置发生变化时,给出应用程序可以捕获的事件。

◆File和Directory类作为实用类,File和Directory类都提供了许多方法,用于处理文件系统以及其中的文件和目录。

这些是静态方法,涉及移动文件、查询和更新属性并创建FileStream对象。

File类一些最常用的静态方法:Copy()------将文件复制到规定的位置Create()------在规定的恢蒙洗唇ㄎ募?/FONT>Delete()------删除文件Open()-------在规定的路径上返回FileStream对像Move()------将规定的文件移动到新位置,可以在新位置给文件规定不同的名字Directory类的一些常用的静态方法CreateDirectory()------创建具有规定路径的目录Delete()------删除规定的目录以及其中的所有文件GetDirectories()------返回表示当前目录之下的目录的Directory对像的数组GetFiles()-------返回在当前目录中的File对像的数组Move()------将规定的目录移动到新位置。

可以在新位置为文件夹规定一个新名称◆FileInfo类FileInfo类不像File类,它没有静态方法,仅可用于实例化的对像。

FileInfo对像表示在磁盘或网络位置的文件,注意它不是流,为了读写文件,必须创建Stream对像。

fileInfo类提供了下面的关于基础性的文件的属性,这些属性可能用来更新文件。

Attributes-----获取或设置当前文件的属性CreationTime------获取当前文件的创建日期和时间DirectoryName------获取文件目录的路径Exists------判断是否存在文件FullName------检索文件的完整路径Length------获取文件的容量Name------仅仅返回文件的名称,而不是完整的文件位置路径、当在.NET代码中规定路径名时,您可以使用绝对路径名,也可以使用相对路行名。

绝对路径名显式地规定文件或目录来自于哪—个己知的位置——比如是c:驱动器。

它的—个范例是C:\work\LogFile.txt。

注意它淮确地定义了其位置。

相对路径名相对于应用程序在文件系统上运行的位置。

通过使用相对路径名称,无需规定已知的驱动器或位置;当前的目录就是起点。

例如,如果应用程序运行在c:\DeVelopment\FileDemo目录上(这里的应用程序是指代码生成后的exe文件),并使用了相对路径“LogFile.txt,”,则该文件就位于C:\DeVelopment\FileDemo\LogFile.txt中。

为了上移目录,则使用.. 字符。

这样,在同一个应用程中路径“../test.txt”是指向应用程序所在的目录的上一级目录里的文件test.txt。

◆FileStream对象FileStream对象表示在磁盘或网络路径上指向文件的流。

当类提供向文件读写字节的方法时,经常使用StreamReader或StreamWriter执行这些功能。

这是因为FileStream类操作字节和字节数组,而Stream类操作字符数据。

相关文档
最新文档