文档视界 最新最全的文档下载
当前位置:文档视界 › C语言学习笔记

C语言学习笔记

C语言学习笔记
C语言学习笔记

Study Notes of C Language C语言学习笔记

Make the Impossible Possible 不一样的成功体验

一.数据类型

C语言数据类型分为基本类型,构造类型,指针类型和空类型.其中基本类型又分为整型,字符型,实型和枚举举型;构造类型分为数组类型,结构类型和联合类型.

注意求余运算时,余数与被除数同符号,如35%8=3, 35%(-8)=3, (-35)%8=-3.自增和自减运算只能用于变量,不能用于常量或表达式.由于C语言变异程序尽可能自左向右将更多的运算符组成一个运算符,故r=w+++1;等价于r=(w++)+1;

逗号运算符号:”,”表示用逗号隔开多个表达式,先求出各个表达式的值,结果为最后一个表达式的值,如z=(10,20+3,90);则z的值为90。逗号表达式使用逗号预算符号将两个表达式连接起来的式子。

<<,>>分别表示将数据按位左移、右移指定二进制位。左移时右边补二进制0,左边丢弃;右移时右边补二进制0,左边丢弃。

字符常量用单引号括起来,字符串用双引号括起来,字符串包括一个结尾字符?\0?。在C 语言中有三种转义字符,它们是:一般转义字符、八进制转义字符和十六进制转义字符。一般转义字符虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为\n,\b;八进制转义字符由反斜杠”\”和随后的1~3个八进制数字构成的字符序列,例如\60,\141;十六进制转义字符由反斜杠和字母x或X及随后的1~2个十六进制数字构成的字符序列。转义字符中只能使用小写字母,每个转义字符只能看作一个字符。

二.输入输出

C语言本身不提供收入输出语句,其输入和输出操作是由其编译系统提供的库函数来实现的,最基本的输入输出函数有printf(),scanf(),getchar(),putchar(),gets(),puts()等.

格式输出函数,格式:printf(“格式控制字符串”[,输出项表]);该函数具体包括以下功能:1.可以指定对不同类型的数据输出;2.给数据类型指定长度修正说明;3.指定输出数据的域宽和精度;4.给输出数据添加需要的说明性字符;5.为输出数据给定对齐方式;6.根据数据的正负为输出数据项添加+,-或空格。

printf()可以输出常量、变量和表达式的值,但格式控制中的格式说明符,必须安装从左向右的顺序,与输出项表中的每个数据一一对应,否则出错。格式字符x,e,g可以用小写字母,也可以用大写字母。使用大写字母时,输出数据中包含的字母也大写。除此之外,其他格式字符必须小写。

格式字符串也成转换控制字符串,可以包含3种字符:格式指示符,转义字符和普通字符。

格式指示符,形式为:%[标志][宽度][.精度][h|l][类型]。

标志字符

宽度:用十进制整数类表示输出地最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出地是字符,则表示输出字符的个数;若实际位数大于所定义的精度,则截去超过的部分。

长度:长度格式符分为h,l两种,h表示按短整型量输出,l表示按长整型量输出。类型:类型字符用以表示输出数据的类型。

基本类型字符

putchar()函数只能用于单个字符的输出,且一次只能输出一个字符。另外,从功能角度来看,printf()函数可以完全代替putchar()函数。

scanf()按规定的格式从键盘输入若干数据到相应的内存单元中。格式字符串的一般形式为%[*][宽度][h|l]类型字符。在输入数据时,格式说明字段中的类型字符以及类型修饰所指定的类型必须与地址参数的类型一致。

宽度指定该项输入数据所占列数为n,跟在%之后,用十进制整数指定;赋值抑制字符*表示本输入项对应的数据读入后,不赋给相应的变量,即跳过该输入值(该变量由下一个格式指示符输入)。scanf()没有精度控制,要求给出变量地址,给出变量名则会出错。在输入多个数字数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,Tab 键或回车作间隔。C编译在碰到空格,Tab键、回车或非法数据时即认为该数据结束。

getchar()从系统隐含的输入设备(如键盘)输入字符。从功能角度来讲,scanf()函数可以完全代替getchar()函数。

字符串输入/输出函数gets()、puts()。函数原型char *gets(char *string)用来输入一个字符串,以按回车键作为结束(换行符”\n”不包含在字符串中),并自动在尾部加空字符?\0?。gets()函数返回指向string的指针。函数参数中char *string是指向char类型的指针,等价的写法是char string[].

puts()函数原型int puts(const char *s)。puts()函数用来输出一个字符串,以空字符?\0?结束,并在输出时自动换行。如果成功执行,返回最后所写的字符,否则返回EOF(EOF内部值为-1,表示文件结束标志)。当const修饰符用在函数参数表中的指针型参数时,在函数体中将不能修改该指针说指向的变量。

对齐规则:

(1)当指定宽度大于要输出位数时,数右对齐,左端补空格

当前缀'-'号时,想要数左对齐,右端补空格

大大的前提:只有当“指定宽度”存在时,前缀'-'才有意义。

经验:一般来说,左端对齐的形式看上去要美观整齐一点。

***************************************输出正负号的技巧:(记住)例如:

printf("%+d %+d %+d\n",-5,0,5);

只要在中间加个“+”号就行。作用是输出符号位(即,数的正负号)

如果不希望正数的前面出现…+?号,可用下面的方法

***************************************只要在中间加个“ ”号(即:空格)就行。(记住)例如:

作用:如果一个数是非负数,就在它的前面插入一个空格。

int i;

for(i=-3;i<=3;i++)

printf("% d\n",i); //注意%和d之间有一个空格

输出结果如下:

-3

-2

-1

1

2

3

问题:如果…+?和… ?同时出现在“中间”时,要以…+?为准。

两个符号的共同点:用于对齐输出的数:(尤其对于小数来说)

三.数组

数组是由相同类型的元素构成的数据类型.在处理多个同类型的事物时,用数组处理会带来很大的方便.数组可以分为一维数组/二维数组/多维数组等.

一维数组格式:存储类型数据类型数组名[常量表达式];存储类型一般有三种形式,即外部数组、自动数组和静态数组。外部数组是定义在函数之外的数组;自动数据用auto表示,一般省略;用static修饰的数组叫静态数组。

初始化就是给数组中的元素赋以初值。可以在定义时用={初始化列表}的形式表示。如int a[5] = {1,2,3,4,5};如果赋全部元素的初值,可省略常量表达式,如int a[]={1,2};

下标分别用0,1,2,…,(常量表达式-1)来表示。下标是一个整数表达式(单个的整数也属于整数表达式)。不能引用整个数组,只能引用数组中的元素。

二维数组格式:存储类型数据类型数组名[常量表达式1][常量表达式2];常量表达式1和常量表达式2分别表示第一维和第二维的大小,可以理解成矩阵的行和列。

初始化:可按行给二维数组赋初值:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};可以去掉里层的{},写成int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};可以对部分元素赋初值,但需用{}把数组的每一行表达清楚,如static int a[3][4]={{1,2},{3},{8}};

在初始化多维数组时,只有第一维的大小才是可以省略的。

字符数组是一种特殊的一维数组,字符数组的特征是以空字符?\0?结束。格式:存储类型char 数组名[常量表达式];若字符多于元素个数,则语法出错。字符数组可以用字符串常量来初始化,字符串常量用””括起来的若干个字符,结尾由字符?\0?结尾。static char x[] = {“I

am a student.”};数组长度为15+1=16,其中x[15]存放?\0?。{}可以省略,一般写成static char x[]=”I am a student.”;字符数组初始化是一维数组初始化的特殊情况,可以用字符串代替用花括号和逗号的办法。把字符数组单独拿出来讲解,是因为字符串是以空字符?\0?结尾的。

四.结构体共用体和枚举型

在实际生活中有许多需要由不同类型的数据共同描述的实体,比如一条通讯录,C语言提供了结构体这样一种数据类型来表示上述实体.

struct是用来声明类型为结构体的关键字,其后是声明的结构体类型名,它们两者组成了定义结构体类型的标识符.定义结构体变量有3种形式:1.先定义结构体类型,再定义结构体变量struct 结构体类型名变量列表;2.在定义结构体类型的同时定义结构体变量;3.定义无名结构体类型的同时定义结构体变量,但这种定义方式不适合需要在程序中再定义此种结构体类型变量的情形.

结构体类型和结构体变量时两个不同的概念,不能混淆.结构体类型只是描述一个结构体形式,C编译系统并不对其分配内存空间.只有当变量被定义为这种类型的结构体时,才对该变量分配内存空间.

定义结构体类型和变量时,关键字struct和结构体类型名必须同时出现,因为结构体类型是由struct和结构体名组合成一起构成的整体.成员名可与程序中的其他变量同名,互不干扰.

在C语言中允许具有相同类型的结构体变量之间进行相互赋值,但对结构体变量的使用,包括赋值/输入/输出和运算都是通过结构体变量的成员来实现的.”.”是结构体成员的运算符,它在所有的运算符中优先级最高.与数组类似,在定义结构体变量的同时,可以对其进行初始化,但要注意结构体成员的数据类型与初值一致.

结构体数组的定义:struct 结构体名结构体数组名[长度];初始化雨普通数组一样,结构体数组也可以在定义的时候进行初始好,其方法是定义结构体数组之后紧跟等号和初始化数据,比如:

struct student

{ int id;

char name[20];

char sex;

float score;

}stu[2] = { {101, “cheng liang”, …M?, 83},

{102, “wang fei“,?F?, 90}

};

结构体指针变量定义:struct 结构体名*结构体指针变量名;用结构体指针变量访问数据成员可以是(*结构体指针变量名).成员名huo 结构体指针变量名->成员名。*为指针运算符,.为成员运算符。.运算符的优先级高于*运算符,所以括号不可少;*结构体指针变量名和结构体指针变量名->的含义是结构体指针变量所指向的结构体变量,最终访问该结构体变量的数据成员。

C语言中允许用结构体变量作为参数,也允许用结构体指针变量作为函数参数。实参到形参的值传递需要很大的时间和空间开销,特别是结构体成员为数组时。由于使用结构体指针变量作为函数参数,那么实参到形参的传递知识地址,因而减少了时间和空间的开销。因此,在实际应用中,较多应用结构体指针变量作为函数参数使用。

共用体定义和结构体相同,相应变量区别是:共用体变量所有成员公用一块内存单元,(所占内存单元以其中最大的数据类型所占的大小为准)虽然每个成员都可以被赋值,但只有最后一次赋予的成员值能够保存而且有意义,前面赋予的曾与之被后面赋予的曾与之所覆盖。

在实际问题中,有些变量的取值被限定在一个有限的范围内。如果用整数或字符来表示这些数据,既不直观又不容易理解。为此,C语言提供了一种称为“枚举”的类型。在枚举类型的定义中列举所有可能的取值,被说明该“枚举”类型变量取值不能查过定义的范围。枚举类型是一种基本类型,而不是一种构造类型,因为它不能分解为任何基本类型。

定义格式:enum 枚举类型名{枚举值表};枚举元素等价于常量,按定义的顺序隐含取值为0,1,2....,也可以将其中某些枚举元素指定为特别的整数常量,其后没有指定特别值的枚举元素,值为前面的枚举元素的值增1.

枚举元素也称为枚举常量,每个枚举常量都表示一个整数值(称为序号)。系统默认情况下,第一个枚举常量代表0,第二个枚举常量代表1,其他常量的值依次递增1,即red=0,yellow=1,...可以将一个整数强制类型转换后赋值给枚举变量。比如c3=(enum color)3;

在实际的程序设计过程中,往往需要处理动态数据结构,即所需的内存空间取决于实际输入的数据,而内存空间无法预先确定,因此使用数组就很难解决。为解决处理动态数据结构问题,C语言提供了一组标准的内存管理函数来动态分配内存空间。动态分配函数,即这组函数可以按需要动态分配内存空间,也可以回收不使用的内存。这组内存管理函数包含在malloc.h和stdlib.h头文件中,最常用的有以下3个:void * malloc(unsigned size)功能是在内存的动态存储区中分配一块长度为size字节大小的连续存储空间。函数返回值为该区

域的首地址。若分配不成功,返回空指针(NULL)。如char *pc;pc=(char *)malloc(sizeof (char));

void * calloc(unsigned n,unsigned size)在内存动态存储区中分配n块长度为size字节的连续区域,分配时吧存储块全部清零。函数的返回值为该区域的首地址。若分配不成功,返回NULL空指针。注意:malloc对所分配的区域不做任何事情,而calloc对整个区域进行自动初始化,这是两个函数的主要不同点,calloc分配的大小为n*size,而malloc为size,calloc头文件为stdlib.h而malloc的为malloc.h。

释放内存空间函数free(),函数原型为void free(void * ptr),释放ptr说指向的一块内存空间,ptr是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区域应是由malloc或calloc函数说分配的区域。free函数没有返回值。

C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,即允许用户为数据类型取“别名”。类型定义符typedef即可用来完成此功能。

格式:typedef 类型名1 类型名2;关键字typedef用于给已有类型重新定义新类型名,类型名1为系统提供的标准类型名或是已定义的其他类型名,类型名2为用户自定义的新类型名。typedef使用最多的地方就是创建易于记忆的类型名。注意typedef并不创建新的类型,它仅仅为现有的类型添加一个同义字,可以增加程序的可读性。

五.指针

指针是C语言中的一个重要概念,也是C语言的一个重要特色.正确而灵活地运用它,可以有效地表示复杂的数据结构,动态地分配内存,直接处理内存地址等,使编写的程序高效而紧凑.

在C语言中,可以用一个变量来存放指针变量,则称这个变量为指针变量,通过指针变量能间接访问内存单元的数据。指针变量在使用之前必须先定义说明,并且赋予具体的值。定义格式:[存储类型] 数据类型*指针变量名;*是指针变量定义符。指针变量在使用的时候必须赋一个地址值。可以对指针变量赋一个变量的地址,也可以是一个常量值。一般用取地址运算符&或直接用地址来为指针变量赋值。

指针变量的引用格式:*指针变量功能是取指针指向变量内存单元的数据。*指针运算符优先级是2级。这是与普通变量定义的区别之处。可以在定义指针变量的同时为指针变量赋初值,即指针变量的初始化。存储单元的地址是无符号整型数据,我们可以用格式符%0,%x 或%u来控制输出地数据格式。

指针运算时进行地址运算。除了指针变量的赋值运算外,还可以是指针与整数相加、减,两个指针变量想减和进行比较。指针运算的目的是更方便地查找所需内存单元里的数据。设指针变量p,整型数值N,p与N相加、减,即p+N表示指向地址p+sizeof(p所指向的数据类型)*N的内存单元。

两个指针进行逻辑关系运算(包括>,<,<=,>=,==,!=),反映两个地址之间的前后关系,运算结果为真或者为假。这可看作无符号整数的比较运算。

指针变量可以和0进行标记,判断是否为空指针。对于指针变量p,若p==0为真则表

示p为空指针,不指向任何数据单元。通常定义宏NULL的值为0来表示空指针。

指针运算符与自增、自减结合运算:指针运算符玉自增、自减同属2级,在运算时按“自右向左”运算,但有些结合比较难理解,自增、自减与指针运算符的结合运算相同,下面是自增与指针运算符的结合规则:

1.*p++,(*p)++ 前者是先取*p的结果,然后p=p+1;后者是先去*p的结果,然后

将该结果加1,p指向的地址不变;

2.*(p++),*(++p)前者先去*p的值,再p=p+1,即指向下一个数据元素;后者

先p=p+1,再去*p的值,即去下一个数据元素的值。

一维数组是连续存放相同类型数据的,给指针变量赋值一维数组的某个元素的地址,则可以通过指针变量的加减运算访问整个数组中各元素的数据。,例如int ch[6],*p,p=ch;则指针变量与数组元素存在如下的关系:1.p=ch表示p指向数组元素ch[0],也可以用p=&ch[0]为指针变量赋值;2.p+i表示数组元素ch[i]的地址;3.*(p+i)表示p+i指向存储单元的内容,即ch[i]的值;4.指向一维数组的指针变量也可以带下标,即p[i]与ch[i]等价。

二维数组是由行和列组成,可以将它的行看作是一个元素,这样一个二维数组就可以看成是一个以为数组,只是每个数组元素又是一个一维数组。对于a[i][j]有:1.二维数组首地址为a或&a[0][0],a为常量;2.a[i]表示第i行的首地址;3.a+i,a[i],*(a+i)都是表示第i行的首地址4.a[i]+j,&a[i][j]和*(a+i)+j都可表示第i行j列的数组元素的地址。

表示二维数组a[i][j]的m行的首地址方式有:a+i,a[i],*(a+i)。这些方式都与数组名有关。在C语言中,可以通过指向由m个元素构成的一维数组的指针变量来处理二维数组。格式为数据类型(*指针变量名)[m],指针变量的增减是按照m个数据类型长度进行处理。注意二维数组的列数与指针定义中m应相同,这样指针变量的移动刚好是二维数组行地址的移动。

字符串可以存放在字符数组里,也可以定义一个字符指针,用字符指针指向字符串中的字符。对整个字符串赋值时,对于字符指针可以随时进行赋值,而对于字符数组只能在初始化时进行整体赋值;字符指针变量中存放的是字符串的首地址,而不是存放的字符串;也可以用字符指针存取字符串的字符。

一个数组中的元素均为指针类型数据的数组叫做指针数组。一个数组元素即为一个指针变量。格式:数据类型* 数组名[常量表达式];

对于参数的传递主要包括数值传递和地址传递。地址参数的传递主要是指针和数据名的传递。通过地址传递,使形参接收到的地址值和实参的地址值是一致的,从而解决了值传递中形参和实参不是同一存储单元的问题。

函数的返回值时指针,格式:数据类型*函数名(参数表);数据类型是函数中返回指针变量指向数据的数据类型;*表示函数返回值为指针。

指向函数的指针。格式:数据类型(*指针变量名) ();(*指针变量名)定义了一个指向函数的指针变量,指向函数的指针变量用来存放函数的首地址。一个指向函数的指针变量可以先后指向不同的函数。用函数名给指向函数的指针变量赋值,指向该函数。

C语言中,main函数是特殊的函数,称为主函数,程序执行时,都是从main函数开始的。main函数可以有参数,也可以没有参数。但它的参数是命令行参数,该参数是在执行该文件的命令行时由程序设计人员输入的,并由操作系统传递给main函数的。指针数组作为main()函数的字符串参数。

格式:main(int argc, char * argv[]);argc和argv[]是形式参数。其中argc为命令行中输入的参数个数,argv[]中依次存放通过命令行输入的字符串参数。

调用:在调用main时,由命令行给出实参。格式是命令名参数1 参数2 …参数n;命令名是程序编译处理的可执行文件名,在调用时存放到argv[0]中。把参数1…参数n的

地址当做一个字符串存放到argv[]下标从1开始的单元中。

指针变量访问变量是间接地访问。如果只有一级时,一次间接访问就可以;如果是多级指针,则要通过一层层地址进行访问,形成了多级间接访问。间接访问的次数越多、地址的嵌套越多,就越容易出错,因此,对于多级指针使用时,间接访问的次数不需太多,比较常用的是二级指针。

一级优先级运算符有数组下标[] 圆括号() 成员选择(对象). 成员选择(指针)->结合方向从左向右;而指针定义符*和自增++、自减--运算符,&取地址运算符是二级,结合方向从右向左。

六.文件

如果用户处理的数据量较大,数据存储要求较高时,程序总是使用文件操作.文件的输入输出操作时应用程序必须具备的基本功能,在很多情况下,在很多情况下,数据的输入都是以文件方式提供,输出结果数据也常以文件形式保存.

文件是指存储在外存储器上的数据的集合,是逻辑上由关联的一组数据,如一个程序/一篇word文档,一首歌曲等.磁盘上的所有数据都以文件形式存储,每个文件具有唯一的文件名,通过文件名对文件进行读写修改或删除等操作.

C语言中,文件的概念具有更广泛的意义,它把所有的外部设备都作为文件对待,这种文件称为”设备文件”,从而把实际的物理设备抽象化,形成了逻辑文件的概念.例如,终端键盘是输入文件.这样可以把磁盘文件和设备文件的输入和输出采用相同的处理方法.这种逻辑上的统一为程序设计提供了便利,使C标准函数库中的输入和输出函数既可以用来读写磁盘文件,也可以从外部设备输入输出.C语言中提供了丰富的I/O库函数,利用这些库函数能够完成对各种数据文件和设备文件的操作.

在C语言使用的磁盘文件系统中,数据文件的存储有两种形式:一种以字符形式存放,称为字符文件,也称为文本文件;另一种以二进制代码形式存放,称为二进制文件.一般而言,二进制文件节省存储空间,并且在数据输入输出时不需进行数据的相互转换,因而输入输出速度快.如果在实际应用中为了节省时间和空间,一般选用二进制文件.但如果数据文件时作为文档进行阅读,则一般使用字符文件.

所谓缓冲文件系统是指系统自动地在内存中为每个正在使用的文件开辟一个缓冲区.当从磁盘文件读入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个将数据送给程序中的接收变量,供程序处理;向磁盘文件输出数据时,先将数据送到内存缓冲区,装满缓冲区后才一起输出到磁盘文件中.这种利用缓冲区将对磁盘文件的频繁逐次访问变为批量访问的做法也称为标准文件操作.标准文件操作减少了对磁盘的实际访问(读写)次数.ANSI C只采用缓冲文件系统.而非缓冲文件系统是指系统不自动设置缓冲区,而由用户根据需要设置数据缓冲.这种对磁盘文件的访问操作称为非标准文件操作.

C语言中的文件被看作字节序列,称为二进制流.C语言的数据文件中没有记录的界限,文件的存取单位是字节,允许存取一个字节和多个字节.标准I/O提供了4种文件存取方式:1读写一个字符;2读写一个字符串,即将多个字符组成的字符串写入文件或从文件中读出;3格式化读写,即根据各市控制指定的数据格式对数据进行转换存取;4成块读写,也称为按记录读写。C语言文件虽然按字节流存放,但可以按记录存取多个字节的数据。

在缓冲文件系统中,核心的概念是文件指针,无论是磁盘文件还是其他设备文件的输入输出都可以通过文件类型指针来进行。

在C语言程序中,当建立或调用一个磁盘文件时,必须了解如下信息:与该文件对于的内存缓冲区的地址、文件当前的读写位置、文件操作的方式、是文本文件还是二进制文件、读或写操作等。标准文件操作为每个文件建立一个“文件信息区”来存放上述这些基本信息。“文件信息区”是一个由系统定义的结构体内存变量,该变量具有FILE数据类型,他是一

种结构体类型,在stdio.h中定义。

每当程序打开一个文件,系统在内存中就建立一个FILE结构体类型变量。如果程序使用n个文件,系统就要建立n个FILE结构体类型变量,存放各个文件的相关信息。这些信息仅供系统内部使用,用户不能直接访问其中的任何成员,而是通过一个指向FILE结构体类型的指针变量实现对文件的各种操作。例如FILE *fp;

在stdio.h中已经说明了几个标准文件指针变量,如:FILE *stdio;FILE *stdout;FILE *stderr;除了标准文件以外的所有磁盘文件和设备文件都是一般文件,必须遵循“打开-读写-关闭”的操作过程。

文件的打开和关闭操作时通过调用fopen()和fclose()实现的。FILE *fp;fp=fopen(文件名,打开方式或使用方式);其中文件名(包括目录路径)是一个字符串,表示将要建立的新文件或打开已经存在的文件;打开方式或使用方式也是一个字符串,表示文件的读写方式,

文件使用方式

文件名字符串应包含文件名和扩展名,路径要用”\\”表示;文件打开时一定要检查fopen()函数的返回值。因为有可能文件不能正常打开,不能正常打开时返回NULL。常用下面的形式检查:if(fp=fopen(…))==NULL) {printf(“error open file\n”); exit(1);}

关闭文件通过fclose()函数完成,调用该函数就切断了fp和它所指向的文件的联系,同时返回一个整数值,0表示调用该函数成功,非0表示关闭出错。

应养成在应用程序结束前关闭所有文件的习惯:这样可以避免数据的可能丢失。因为在写操作时,如果数据没有填满缓冲区而程序结束运行,就会将缓冲区中的数据丢失,用该函数就避免了这个问题。因为该函数先把缓冲区的数据输出到文件,然后终止文件指针与文件之间的联系;系统规定的运行打开文件数目是有限制的,及时关闭一些不用的文件可以避免因打开文件太多而影响其他文件的打开操作;可以防止对该文件的误用。

fputc(char ch,FILE *fp);写一个函数到磁盘文件。函数返回一个整数值,如果调用成功则返回写入字符的ASCII值,失败则返回EOF,即-1.fgetc()函数使用类似。文本文件的内部全部是ASCII字符,其值不可能是EOF(-1),所以可以使用EOF确定文件结束,但是对于二进制文件不能这样做,因为可能在文件中间某个字节的值是-1,判断文件结束是不恰当的。为此,C提供了feof()函数判断文件是否真正结束,该函数原型是int feof(FILE *fp)即在fp 所指向的文件中读取数据时,如果读到了文件末尾,则函数返回非0;如果还没有读到文件末尾,则返回0.这个函数既适合文本文件,也适合二进制文件结束的判断。

char *fgets(char *str, int n, FILE *fp)从磁盘文件读一个字符串,并存于字符指针所指的字

符数组中。从fp所指向的文件读n-1个字符,并将这些字符放到str为骑士地址的单元中。如果在读入n-1个字符结束前遇到换行符或EOF,读入结束。字符串读入后最后加一个”\0”,使其成为字符串。函数调用成功返回一个指向该字符串的指针,即字符数组的首地址;遇到文件结束或出错则返回一个NULL。在实际编程中,可以用ferror()函数或feof()函数来测定时读出错还是到了文件尾。fputs(char *str, FILE *fp)向fp所指向的文件写入以str为首地址的字符串。调用成功返回写入文件的字符个数,出错则返回-1值。字符串的结束符?\0?不写入文件中。

数据块读写函数:int fread(void *buf, int size, int n, FILE *fp);buf是一个指针,用以指向所读数据块在内存中的起始地址,fp文件指针。即该函数从fp所指的文件中读取n个数据项,每个数据项的大写为size个字节,将它们读到buf所指的内存缓冲区中。函数调用不成功,则返回0;如果成功,则返回实际读出的数据项的个数,这个数可能小于n,因为文件中坑农没有足够的数据项。int fwrite(void *buf, int size, int n, FILE *fp)函数调用成功将返回写入文件中的数据项数。当返回值小于所设置的数据项n时,可能是缓冲区的数据不够或写入错误。

C语言的文件时字节流,用前面介绍的读写函数进行读写时,只能是顺序读写,没读写一次,文件中指向当前位置的制作自动指向下一个位置。然而在实际应用中,常常希望直接读写文件中的某个数据项,而不是按文件的物理顺序逐个读写。这种可以任意指定读写位置的文件操作,称为随机读写。实现文件的随机读写,就需要用定位函数使文件位置指针向相应位置,然后再进行文件读写。其中文件位置指针是指在文件的读写过程中,指出文件的当前读写位置的指针,每次读写后,它自动更新指向新的读写位置。

可以通过文件位置指针函数,实现文件的定位读写。文件位置指针函数有void rewind(FILE *fp)使文件位置指针重新回到文件的开头位置;int fseek(FILE *fp, long offset,int origin)用以移动文件的位置指针,fp是文件指针,offset是偏移量,表示相对于起始点向后移动的字节数,其数据类型为long,offset为正,向后偏移,offset为负,则向前偏移,origin 为骑士点,用以计算偏移量的起点,可以设置三个起始点:0SEEK_SET表示文件头,1SEEK_CUR表示文件当前位置指针处,2SEEK_END表示文件尾;long ftell(FILE *fp);fp是文件指针。该函数用以得到fp说指文件的位置指针的当前位置,此位置似乎相对于文件头的,单位是字节数,类型为long。如果调用失败,函数返回值为-1L。

用于程序内部或程序之间数据传递的数据文件通常都是要二进制文件。这样数据在文件中的表示和在内存中的表示形式相同,没有数据的转换工作,能提高执行效率。

七.函数

C语言的程序模块称为函数,通常一个函数完成一个功能模块。函数分为标准函数和用户自定义函数。标准函数就是库函数,由C编译系统提供,用户可以直接调用它们,它们是C语言最基本的函数。

函数的声明、定义和调用

格式:[存储类型] [数据类型] 函数名([形式参数表])

说明:存储类型有四类:auto,extern,static,register。函数默认是extern的,即别的文件中用extern声明后可以使用,static只能在本文件中使用,这些函数永远不会被外部函数调用,有点OOP的思想在里面,register类型是驻留在寄存器中的,编译器一般把频繁使用的如循环控制变量这样处理,提高执行效率,不符合寄存器长度的会采用auto处理,auto 变量放在堆栈中,局部、暂时意义。

函数的数据类型规定为函数返回值的数据类型。一般情况下,返回值的数据类型与函数类型一致,如果不一致,以函数类型为准。当有返回值时,return 表达式;没有返回值时,

不使用return语句,当然也可以用;不提供返回值时,可以定义函数类型为void。

与变量的定义一样,函数的声明放在不同的位置决定了它的可见性和作用域。有了函数的声明,函数的定义就可以放在函数声明后的任何地方。声明只要简单地照写已定义的函数首部,再加一个分号。对于函数的类型是整型、字符型和无返回值的函数可以直接使用而无需声明,但为了清晰和安全,别这样做。

函数没有参数,调用该函数时实际参数表为空,但圆括号()不能省略,它是函数的标志。函数有三种调用方式:函数语句[putchar(…a?);],函数表达式[y=sina(1.0)/3],函数参数[printf(“%d”, fact(8));]。在不返回结果的函数定义中,void不能省略。否则,函数类型被默认定义为int型。

变量和函数的作用域

我们把定义在函数内部的变量为局部变量,把定义在函数外部不属于任意一函数的变量称为全局变量。局部变量分为函数局部变量和复合语句局部变量,这样做是为了有各自的使用范围,两者不会产生冲突和相互干扰。形式参数也是局部变量。局部变量最好定义在函数或复合语句的开始处,尽量不要定义在中间。

一些变量需被多个函数使用,有两种方式可以解决:1.利用函数参数化传递,但受到单值返回的限制;2.使用全局变量,它对作用范围内所有的函数都起作用。

一般情况下,把全局变量定义在程序的最前面,即第一个函数的前面。在同一个源程序文件中,允许局部变量与全局变量同名,但实际起作用的是就近一致原则。利用全局变量可以减少函数实际参数与形式参数的个数,从而减少内存空间以及参数传递的时间消耗。

在变量使用中,应尽量使用局部变量和函数参数。全局变量在全部执行过程中一直占用内存单元,而不是仅在需要时才开辟内存单元。使用全局变量将会降低函数的通用性,过多使用全局变量会降低程序的清晰性。

变量从时间来看有生命期,从空间来看有作用范围,两者有联系但不是一回事。变量从定义开始分配存储单元,到运行结束存储单元被收回,整个过程称为变量生命周期。

内存中供用户使用的存储空间分为程序区、静态存储区和动态存储区三部分。程序区主要存储C程序代码,数据分别存放在静态存储区和动态存储区。静态存储区用于存放全局变量和静态局部变量。动态存储区用于存放形参、auto型变量和函数调用时的现场保护和返回地址等。

在自动变量定义时,存储类型auto可以省略。全局变量存储类型extern可以省略可以利用全局变量实现函数之间的数据传递。全局变量还是最好放在所有函数前定义,避免不必要的麻烦.如果函数使用的全局变量在函数后面才定义,我们采取的方式是在函数里先声明一下,声明的时候前面一定要加上extern关键字,否则成了局部变量了. 全局变量在整个程序的任何地方均可访问,而静态变量相当于面向对象中的私有变量,它的可访问性只限定于声明它的那个源文件,即作用域仅局限于本文件(静态函数也一样)

自动局部变量没赋初值时,初值为随机数,而静态局部变量则取初值0.虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。而全局变量被一个函数调用后,在另一个函数中仍可以引用它。

函数的递归调用

函数自己调用自己(直接或间接方式)称为递归调用,带有递归调用的函数称为递归函数。递归程序设计师一个非常有用的工具,可以解决一些其他方法很难解决的问题(汉诺塔hanoi)。对于递归程序的设计,要先设法归纳出递归式子,找出递归结束的条件。递归程序由递归方式与递归终止条件两部分组成。比如:

n!=n*(n-1) n>1 /*递归方式*/ ;n!=1 n=1,n=0 /*递归终止条件*/

预处理命令

C预处理命令不是C语句,不能直接被C编译程序翻译生成目标代码。C源程序在编译处理前,需对其预处理部分做一个编译预处理,即解释这些预处理命令,把预处理部分转化成相应的C程序段。当编译预处理完成后,生成了由C语句构成的程序,经过编译得到目标代码。

C语言的预处理命令有3种:宏定义;文件包含;条件编译。由于预处理命令不是C语句,预处理命令不用语句结束符(;)来结束。

#define为宏定义命令,行尾不用分号结束;宏名一般用大写与变量区别;字符串可以是常数、表达式、格式符或C语言语句等;宏定义必须在一行内完成;宏定义允许嵌套;宏定义通常写在文件开头处,作用范围为定义起到文件尾;使用#undef命令停止宏定义的作用范围;在程序中用双引号引起来的字符,即使与宏名相同也不进行替换;一般不提倡把整个C语句简写成宏;宏定义与变量定义含义不同,宏定义只作字符替换,不分配内存空间。

宏定义不占运行时间,对于简短的表达式,以及调用频繁、要求快速响应的场合(如实时系统)适合采用宏。需注意:带参数的宏定义只是进行简单字符替换,无任何中间计算和计算值产生。因此,一些过程(如递归调用)是不能用宏定义来完成的。

文件包含格式:#include”文件名”#include<文件名>.使用尖括号<>表示在存放C 库函数头文件所在目录C系统指定目录中查找,而不是在源文件目录中查找要包含的文件;使用双引号””表示首先在当前源文件目录中查找,找不到再到C库函数头文件的目录中查找要包含的文件。一般适用于编程者自己的包含文件,必要时可以在文件名前加上所在的路径。

一个#include命令只能指定一个被包含文件,若有多个文件要包含,则需要使用多个#include命令;#include不是真正的C语句,结尾不用分号(;)结束;#include所包含的文件,其扩展名可以是.c,表示C程序文件,也可以是.h,表示C程序的头文件。

一般情况下,在编译阶段,除注释外,源程序中所有程序行都参加编译。但有时希望只对其中一部分内容在满足一定条件时才进行编译,即“条件编译”。条件编译对一部分内容指定编译条件,对于程序的移植和调试时很有用的。条件编译命令有3种格式

1>

#ifdef 标识符

程序段1

#else

程序段2

#endif

2>

#ifndef 标识符

程序段1

#else

程序段2

#endif

3>

#if 常量表达式

程序段1

#else

程序段2

#endif

程序段可以是语句组,也可以是命令行。如果常量表达式的值为真(非0),则编译程序段1,否则编译程序段2.

条件编译广泛运用于商业软件,可以为一个程序提供多个版本,不同的用户改用不同的版本。采用条件编译的好处还在于:1.可以减少被编译的语句,从而减少目标程序的长度,减少运行时间;2.可把系统代码包保护得更好。假如某个用户得到的是包含程序段1的目标代码,由于程序段2未被编译,始终无法找到程序段2的目标代码。

宗教学概论

宗教学概论 1.宗教观观念的内容 各种宗教都有说明其信仰的观念,甚至形成了一套论证其信仰的观念体系。它是宗教组织借以建立宗教信仰体制的骨架,对整个宗教体系的构成起基础性的作用。各种宗教观念无论在内容上有何区别,必须用一定的语言,文字表达出来。宗教观念一旦用语言文字表达出来,就超出了个人的体验,具有社会意义,就成了一种社会文化形式,成了宗教传道的工具。各种各样的宗教的信条、教义、教理都是不同的,但既然是宗教,就有共同的东西,大致归纳为三个方面:(一)灵魂观: 灵魂观是宗教最重要最直接的观念,形灭灵魂不灭的观念几乎广泛流行于世界各个宗教中。“灵魂”观点是整个宗教的发端,是全部宗教的核心问题。 1.“灵魂不灭,上帝存在,意志自由”是基督教的核心。 2.伊斯兰教也大体相同。 3早期佛教不讲灵魂不灭,但是讲“因果报应”“生死轮回”,其结果则是承认了灵魂的存在,并且以灵魂作为因果轮回的主体。佛教传入中国,灵魂观念进一步发展,“神不灭”则成为中国佛教的坚定信仰。 不相信灵魂存在宗教是不存在的,因此宗教与迷信是分不开的。 (二)神灵观: 1.宗教是社会的产物,宗教观念的内容归根结底是人与人关系的反映,但在宗教中,人与人的社会关系表现为人与神的宗教关系。人是宗教信仰和崇拜的主体,神是信仰和崇拜的对象,没有神就没有信仰和崇拜的对象,这样宗教就无从谈起。所谓无神的宗教是不存在的。如果某个宗教宣扬自己没有神灵,那他就不是货真价实的宗教。 2.关于人与神的关系。神是“人格化”的超自然存在,并不全面。原始民族信仰崇拜的神并未“人格化”。所以,神的人格化并不限于同形,更重要的神与人“同性”。这就是说神与人在思想、情感、意欲方面与人有相同或相似的性格,从这一点上讲,可以说一切宗教崇拜的对象都是与人“同性”的。无论是氏族社会的图腾崇拜还是伊斯兰教无任何具体形象的真主,他们在其崇拜者的心中,都是具有人一样的思想、情感和意欲,都是按照人的行为方式进行活动的。一切宗教的神圣对象性能,本质上都是人性,只不过这种人性,在神圣对象身上被进一步神圣化了而已。这样来讲,人格化的神,实质是人性的神格化。 3.总之,一切宗教中神的神性就是人的人性,神的本质就是人的本质。神灵观念之所以产生,是人通过想象力把人的人性和本质异化或对象化为一个神圣对象的结果。因此,宗教中的这种神灵、创始祖或上帝,所有的一切都并没有客观

“英语”语言学概论第六章笔记

Chapter 6 Pragmatics 语用学 1.What is pragmatics? 什么是语用学? Pragmatics can be defined as the study of how speakers of a language use sentences to effect successful communication. As the process of communication is essentially a process of conveying meaning in a certain context, pragmatics can also be regarded as a kind of meaning study. It places the study of meaning in the context in which language is used. 语用学研究的是说某种语言的人怎样用句子去实现成功的交际。 由于交际的过程从本质来说是在一定的语境中表达意义的过程,因而语用学的本质是一种意义研究。它是一种将语言置于使用的语境中去的意义研究。 2.Pragmatics and semantics 语用学和语义学 Pragmatics and semantics are both linguistic studies of meaning, but they are different. What essentially distinguishes semantics and pragmatics is whether in the study of meaning, the context of use is considered. If it is not considered, the study is restricted to the area of traditional semantics; if it is considered, the study is being carried out in the area of pragmatics. 语用学和语义学都是对意义的语言学研究,但两者是不同的。它们的本质区别在于研究意义时是否考虑了语言使用的语境。没有考虑到语境进行的研究就没有超出传统语义学的研究范围;相反,考虑到语境进行的研究就属于语用学的研究范围。 3.Context 语境 Context is essential to the pragmatic study of language. It is generally considered as constituted by the knowledge shared by the speaker and the hearer. 语境是语言的语用研究中不可缺少的概念。它一般被理解为说话者和听话者所共有的知识。The shared knowledge is of two types: the knowledge of the language they use, and the knowledge about the world, including the general knowledge about the world and the specific knowledge about the situation in which linguistic communication is taking place. 共有的知识包括他们所使用的语言方面的知识和双方对世界的认识,包括对世界的总的认识和对正在进行的语言交际所处的环境的具体认识。 4.Sentence meaning and utterance meaning 句子意义和话语意义The meaning of a sentence is abstract, and de-contextualized, while utterance meaning is concrete, and context-dependent. Utterance is based on sentence meaning; it is the realization of the abstract meaning of a sentence in a real situation of communication, or simply in a context. 句子的意义是抽象的,非语境化的,而话语的意义是具体的,受语境制约的。话语意义基于句子意义;它是一个句子的抽象意义在特定语境中的具体体现,或简而言之,在一个语境中的具体化。 5.Speech act theory 言语行为理论 Speech act theory is an important theory in the pragmatic study of language. It was originated with the British philosopher John Austin in the late 50’s of the 20th century. 言语行为理论是语言语用研究中的一个重要理论。它最初是由英国哲学家约翰.奥斯汀在20世纪50年代提出的。 According to speech act theory, we are performing actions when we are speaking.

杨忠《语言学概论》笔记

Chapter 1 Introduction Ⅰ.What is language? 1. Different definitions of language (1) Language is a system whose parts can and must be considered in their synchronic solidarity. (de Saussure, 1916) (2) [Language is] a set (finite or infinite) of sentences, each finite in length and constructed out of a finite set of elements. (Chomsky, 1957) (3) Language is a purely human and non-instinctive method of communicating ideas, emotions and desires by means of voluntarily produced symbols. 2. Each of the definitions above has pointed out some aspects of the essence of language, but all of them have left out something. We must see the multi-faceted nature of language. 3. As is agreed by linguists in broad terms, language can be defined as a system of arbitrary vocal symbols used for human communication. Ⅱ.Features of human language 1. Creativity (1) Language provides opportunities for sending messages that have never been sent before and for understanding brand new messages. (2) The grammar rules and the words are finite, but the sentences are infinite. Every speaker uses language creatively. 2. Duality (1) Language contains two subsystems, one of sounds and the other of meanings. (2) Certain sounds or sequences of sounds stand for certain meanings. (3) Certain meanings are conveyed by certain speech sounds or sequences of speech sounds. 3. Arbitrariness (1) The relationship between the two subsystems of language is arbitrary. (2) There is no logical connection between sound and meaning. 4. Displacement (1) There is no limit in time or space for language. (2) Language can be used to refer to things real or imagined, past, present or future. 5. Cultural transmission (1) Culture cannot be genetically transmitted. Instead, it must be learned. (2) Language is a way of transmitting culture. 6. Interchangeability All members of a speech community can send and receive messages. 7. Reflexivity (1) Human languages can be used to describe themselves. (2) The language used to talk about language is called meta-language. Ⅲ.Functions of language – three meta-functions 1. The ideational function

《宗教学概论》考试大纲

《宗教学概论》考试大纲 一、考试目的 本考试是全日制宗教学专业硕士研究生的入学资格考试之专业基础课,考试的目的在于考察考生是否具备攻读该专业硕士学位所必须的基础知识、专业素质和研究潜力。 二、考试的性质与范围 本考试是测试考生专业知识和专业素养水平的尺度参照性水平考试。考试范围包括本大纲规定的专业知识和一定的专业理论分析能力。 三、考试基本要求 1. 掌握宗教学理论的基本内容和世界宗教的基本知识。 2. 对宗教学思想史上的重要人物、重要思想和重大事件及其发展和特征有较为深入的理解。 3. 正确使用相关专业术语,清楚分析问题,具有较高宗教学知识素养和文字论述能力。 四、考试形式 本科目考试为闭卷考试,答题一律写在答题纸上。 五、考试内容 本考试包括三个部分:名词解释、简答题和论述题,总分150分。

I.名词解释 1. 考试要求 要求考生对宗教学理论与宗教思想史的相关名词、概念、人物和现象有一定的了解和掌握,并给出简要的解释。 2. 题型 要求考生解释宗教学名词5个,每个名词6分,总分30分。 II. 简答题 1. 考试要求 要求考生根据宗教学理论与宗教思想史的相关知识能够简要回答问题,并合理展开必要的分析和总结。 2. 题型 该部分要求考生根据各个具体题目要求回答问题,共需回答3道简答题,每题20分,总分为60分。 III. 论述题 1. 考试要求 考生应能根据所给问题,综合运用所学知识,联系宗教学理论和宗教思想史给出有理有据的解答,并尽量展开理论分析和个人的见解,论述要具有逻辑性和合理性。 2. 题型

该部分共有2道论述题,每题30分,共计60分。 《宗教学概论》考试内容一览表

普通语言学教程笔记(索绪尔)

《普通语言学教程》索绪尔 绪论 第一章语言学史一瞥 语法(规范)-语文学(过于注重书面语)-比较语文学或比较语法(只比较)-新语法学派(语言集团集体精神的产物) 第二章语言学的材料和任务;与毗邻科学的关系 语言学的任务是:a 对一切能够得到的语言进行描写并整理他们的历史,尽可能重建每个语系的母语;b 寻求在一切语言中永恒地普遍地起作用的力量,整理出能概况一切历史特殊现象的一般规律;c 确定自己的界限和定义。它与社会心理学、生理学、语文学相关。语言学也有实际用途,特别是对于那些利用文献的人,另外对一般修养也很重要。 第三章语言学的对象 定义——在任何时候,语言都是现行制度和过去的产物。我们的研究方法是一开始就站在语言的阵地上,把它当做言语活动的其他一切表现的准则。语言和言语活动不能混为一谈,它只是言语活动的一个确定的部分,而且当然是一个主要部分,它既是言语机能的社会产物,又是社会集团为了使个人有可能行使这机能所采用的一整套必不可少的规约。语言本身是一个整体,一个分类的原则。它是一种约定俗成的东西,人们同意使用什么符号,这符号的性质是无关轻重的。对人类天赋的不是口头的言语活动,而是构成语言——即一套和不同的观念相当的不同的符号——的机能。人们说话的机能——不管是天赋的或非天赋的——只有借助于集体所创造和提供的工具才能运用,所以,说语言使言语活动成为统一体,绝不是空想。 语言在言语活动事实中的地位——言语循环重建:心理现象-生理过程-物理过程-生理过程-

心理现象 (c-i)这一主动过程称为执行部分,(i-c)这一被动过程称为接受部分,此外还有联合和配置的机能。语言是社会的、主要的,言语是个人的、偶然的、从属的。 语言的特征是:1 他是言语活动事实的混杂的总体中的一个十分确定的对象,是言语的社会部分。2 语言是人们能够分出来加以研究的对象。3 言语是异质的,而规定下来的语言是同质的,它是一种符号系统,在系统中,只有意义和音响形象的结合是主要的,符号的两个部分都是心理的。4 语言这个对象在具体性上比言语毫不逊色。即是音响形象的堆叠,又可转为文字。 语言在人文事实中的地位:符号学——语言是一种表达观念的符号系统。符号在本质上是社会的。 第四章语言的语言学和言语的语言学

语言学概论整理

语言学概论 第一章、绪论 1.语言学定义:专门以语言为研究对象的一门独立的科学。语言学的任务就是研究语言的性质、功能、结构及其运用等问题,揭示语言存在和发展的规律,使人们理解并掌握语言的理性知识。 第一节、语言研究与语言学 1.神话传说 2.语文学研究 ①语文学:是从文献角度研究语言文字学科的总称。它以文献评审为主,目的在于解释、 注疏和考订。 ②东方语言学:古印度、古中国 古印度语言学:公元前4、5世纪时,口语和《吠陀》时代的语言差别越来越大,甚至许多地方已经不能为一般人所读懂了。为了确保准确无误地理解《吠陀》的宗教内容,就必须对《吠陀》的语言作注释。著名的《巴尼尼经》(Pāninisūtra)正是当时从解说《吠陀》语言开始,进而研究梵语的整个结构的产物。《巴尼尼经》又名《八章书》,是巴尼尼在前人研究的基础上撰写的一部梵语语法。巴尼尼用3,983条经句极其概括地叙述了梵语的语音结构、语词的构成和变化规则。巴尼尼语法是一部汇集了许多世纪的语法学家研究成果的语法法典,对梵语的语音、语法现象分析和描写得十分细致,代表了古代印度语言研究的水平。印度语言研究的最初动力,是必须把梵语文化中最古老的吠陀时期由口头流传下来的一些宗教和礼仪文献保存下去,巴尼尼的工作在一定程度上帮助了后人学习和研究梵语。布龙菲尔德说:巴尼尼的著作是“人类智慧的丰碑之一”。 ③西方语言学:古希腊语言学、古罗马语言学、中世纪至18世纪末的西方语言学 谈谈语文学和语言学的关系: 语言学就是专门以语言为研究对象的一门独立的科学。语言学的任务就是研究语言的性质、功能、结构及其运用等问题,揭示语言存在和发展的规律,使人们理解并掌握语言的理性知识。语言学还没有成为一门独立的学科之前,人们对于语言的学习和研究只是为了给古代经典文献作注释,我们称那段时期的语言研究为语文学。语文学是从文献角度研究语言文字学科的总称。它以文献评审为主,目的在于解释、注疏和考订。 3.历史比较语言学:威廉琼斯的论文拉开19世纪历史比较语言学研究的序幕 4.现代语言学: ①瑞士语言学家索绪尔的《普通语言学教程》 索绪尔:现代语言学的历史,是从瑞士语言学家费尔迪南·德·索绪尔开始的。索绪尔的代表作是《普通语言学教程》。索绪尔被誉为“现代语言学之父”,《普通语言学教程》是现代语言学的奠基之作。索绪尔的语言学思想和19世纪以前的语文学最根本的区别在于:把语言看成是由各个符号之间的关系组成的有价值的结构系统。 《普通语言学课程》是一部什么样的书? 《普通语言学教程》是由索绪尔的两位弟子兼同事根据学生们的听课笔记整理而成的。《普通语言学教程》是现代语言学的奠基之作。索绪尔区分了语言和言语,语言属于全社会,是抽象的;言语属于个人,是具体的。索绪尔认为语言是符号系统,“是一个纯粹的价值系统”。每个符号是由“能指”和“所指”构成的,所指和能指之间的关系是任意的。符号之间存在着线性的句段关系和联想的聚合关系。索绪尔把语言现象分为“共时”和“历时”两种,“共时”是指时间历程中的某一点上的语言状态,“历时”是指以时间历程中的某一点到以后的语言现象。索绪尔认为,语言学的对象是语言,由于语言有它的内部要素,也有它的外部要素,所以语言学也可以分为内部语言学和外部语言学。总之,《普通语言学教程》的语言学

《普通语言学教程》读书笔记

《普通语言学教程》读书笔记 10级汉语3班徐星星100322 本书著者是本世纪最著名、影响最深远的语言学家之一费尔迪南·德·索绪尔,在本书中,他对欧美语言学界所接触到的各种有关原理和方法的问题都作了总结,并且提出了自己独到的见解。这本书的影响也遍及世界。 首先在绪论的第三章中,索绪尔向我们阐释了语言的定义: 语言是一种约定俗成的东西,人们同意使用什么符号,这符号的性质是无关轻重的。即一套和不同的观念相当的不同的符号。人们说话的机能只有借住集体创造和提供的工具才能运用,不管是天赋的或非天赋的。所以说,说语言使言语活动成为统一体,那绝不是什么空想。在索绪尔看来。语言是语言共同成员中的语法体系,言语则是人们平时说的那些话,是依赖于语法系统的说话行为。言语是语言的体现。语言学研究实际语言行为中所潜藏的形式系统,因此,在索绪尔看来,语言学的对象是语言而不是言语。 索绪尔认为,把语言和言语分开,我们就把什么是社会的,什么是个人的,什么是主要的,什么是从属的和偶然的区分开来了。照此看来,语言学家主要的研究对象应该是“语言”、确定构成“语言”的单位及其组合规则,而不是去描写言语活动。“语言”是一个符号的系统,在这个系统中,只有意义和音响的形象的结合是主要的。 索绪尔为了确立语言学的研究对象,区分出“语言”和“言语”,他的“语言”和“言语”理论不仅对本世纪的语言研究的方法产生了深刻的影响,而且还影响着文学和符号学研究。 在第一编中,索绪尔指出语言是一个符号系统。语言是符号学的一部分,他强调语言具有一般符号系统的主要特征。语言与其他一切同类的的符号系统有以下几点共同点。一是目的相同,各种符号系统虽然采用的手段不同,复杂程度不同,但目的都是一样的,都是为了传递信息。二是它们的内涵相同,一切符号系统之所以能传递信息是因为它们与意义相联系。意义是符号的内涵,是符号在使用该系统的人在头脑中激发的概念。三是构成元素相同,无论使用

语言学概论 精讲一官方笔记

语言学概论第一节课官方笔记目录 一、课件下载及重播方法 二、本章/教材结构图 三、本章知识点及考频总结 四、配套练习题 五、其余课程安排 一、课件下载及重播方法 二、教材节构图

三、本章知识点及考频总结 第一部分语言和语言学 ◆模块一认识人类的语言 知识点一语言的性质和类型 (一)语言的概念 语言是一种符号系统,是由语音和语义构成的符号系统,是人类进行社会交际和思维认知的工具。 (二)人类语言与其他动物鸣叫系统的区别是: 1、内容更多: 表达无极限(时间、空间),想说、可说、能说。 2、用处更大: 交际、标志、记录、思维、认知等功能。 3、能够创造: 极强的生成能力和极高的运转效率。

注意:只有人类才有语言人类具有语言能力,是人跟其他动物区别的最重要的标志 (二)语言和民族、国家的关系 确定不同的语言,首先涉及的是语言跟民族和国家的关系 1.语言是识别民族和国家的标志——“相互能够听懂”(欧洲国家) 相同民族——相同语言;同一国家——同一语言 2.语言并非识别民族和国家的标志(欧洲以外的国家) 犹太人的语言与民族身份;海外华人的民族身份与语言;满族与满语 3.西方学界的双重标准——“相互能够听懂” 弱国——用语言识别民族;对“汉语”的看法。 强国——不用语言识别民族,美国、英国、澳大利亚和加拿大 (三)语言的特点和语言类型 1、语言的特点 不同的语言有自己的特点,各种语言在语音、词汇、语法方面差距显著。根据语言的特点,把语言进行分类,主要有“语言的谱系分类”和“语言的形态分类” 2、语言的类型 (1)语言的谱系分类

从语言的“历时”角度划分不同的语言,建立“语言的谱系分类”, 即语言的亲属关系分类。根据各种语言在语音、语汇、语法等方面是否有共同的来源和相似性的大小对语言进行的分类。 谱系分类是一个层级系统:语系—语族—(语支)—语言—方言—次方言(土语) 语系:语系是谱系分类中最大的类,语系、语族、语支、语群这种谱系分类的层级体系,反映了原始基础语随着社会的分化而不断分化的历史过程和结果。 世界上的语言大致分为七、八个语系。印欧语系和汉藏语系(区别在于是否有区分意义的声调和词的形态变化)语族:语系的下一级叫语族,同一语族的语言不但有相同的来源,相似点也更多,如印欧语系下分印度语族、伊朗语族、日耳曼语族等。 (2)语言的形态分类 即语言的结构类型分类。主要分为两种: ①形态语(综合性语言) 通过词的形态变化来体现各种结构意义的语言,主要有屈折语(词的形态变化丰富,如德语、俄语)、黏着语(词的形态变化为前后词缀,如维吾尔语、日语) ②孤立语(分析性语言)——汉语 语法手段无需谓词词形变化表现“时、体、态”;无需

考研民俗学概论笔记―钟敬文

第一章绪论 第一节民俗与民俗学 一、什么是民俗 1、民俗,即民间风俗,指一个国家或民族中中下层民众所创造、想用和传承的生活文化。 2、“folklore”这个词是英国学者汤姆斯于1846年创立的 3、【历史上人们对“民俗”概念的狭义理解】 ①.文化遗留物说。(英国文化进化学派) ②.精神文化说。(英国民俗学会) ③.民间文学说。(美国学者厄特利和苏联学者) ④.传统文化说。(西方普遍流行) 4、【广义的“民俗”】民俗是人民大众所创造、享用和传承的生活文化。民俗是中下层民间文化的一部分。它是民间文化中带有集体性、传承性、模式性的现象,主要以口耳相传,行为示范和心理影响的方式扩布和传承。这种社会生活文化既是一种历史文化传统,也是民众现实社会生活中的一个重要组成部分。 5、【民俗事项分类】 (1)物质民俗: 是指人民在创造和消费物质财富过程中所不断重复的,带有模式性的活动,以及由这种活动所产生的带有类型性的产品形式。 (2)社会民俗:

也称社会组织及制度民俗,是指人民在特定条件下所结成的社会关系的惯制,它所涉及的是从个人到家庭、家族、乡里、 1 / 36 1民族、国家乃至国际社会在结合、交往过程中使用并传承的集体行为方式。 (3)精神民俗: 是指在物质文化与制度文化基础上形成的有关意识形态方面的民俗。它是人类在认识和改造自然与社会过程中形成的心理经验,这种经验一旦成为集体的心理习惯,并表现位特定的行为方式并世代传承,就成为精神民俗。 (4)语言民俗: 是指通过口语约定俗成、集体传承的信息交流系统。 它包括两大部分: 民俗语言与民间文学。 二、民俗学的性质与任务 1、【主要任务】是以科学的态度,对历史与当代的民俗事象,进行调查、收集、整理、描述、分析和论证,探求它的本质结构、特点与社会功能,揭示其发生、发展、传承、演变、消亡的规律,为人类社会的健康发展服务。 民俗学是一门帮助人们认识历史与文化、改造现实社会生活的人文科学。

《语言学纲要》(叶蜚声_徐通锵)详细复习资料_课堂讲义笔记

语言学纲要讲义笔记 导言 一、语言的定义 语言是人类最重要的交际工具和思维工具、是由音义结合的词汇和语法构成的一种符号系统。 二、语言学的对象和任务 语言学是研究语言的科学。 要把语言学跟语文学区分开来 中国传统语文学——“小学” 小学是我国古代语文学的统称,由训诂学、文字学、音韵学三部分组成。 在古印度,公元前4世纪,著名学者潘尼尼在整理、注释婆罗门教经典《吠陀》时,写了一本《梵语语法》,提出3996条规则,被人们称为最完备的语法书。在古希腊,伯拉图和亚里斯多德是从哲学的角度来研究语言的,他们讨论了词为什么具有意义等内容。 三、语言学在科学体系中的地位 语言学既是一门古老的科学,又是一门年轻的科学。 1、与社会科学、自然科学的联系 语言研究的成果是哲学、历史学、考古学、文学、政治学、经济学、逻辑学、社会学、民族学、计算机科学等学科所必须利用的,可见语言研究在这些社会科学中已占重要地位。 语言学与其他学科相交叉产生社会语言学、心理语言学、计算语言学、生物语言学、模糊语言学、实验语音学等。如:运用语言传递信息的过程,可分为五个阶段: 编码——发送——传递——接收——解码 对这一具体过程的解释需要结合物理学、生理学、心理学等其他学科的知识。三、语言学的基本类别 总体上,根据研究对象的不同,语言学可以分为理论语言学和应用语言学两大类。(一)理论语言学可分为: 1、一般/普通语言学

2、个别/具体语言学 具体语言学 (1)历时语言学 (2)共时语言学 (二)应用语言学 1、社会语言学:研究语言与社会集团的关系。如地域方言、社会方言、语言的接触、语言规划等。 2、心理语言学:研究儿童语言习得、语言的接收和发生过程,等。 3、神经语言学 最近二十年才从心理语言学中分离出来的一门新的学科,主要研究语言和大脑结构的关系,中心是大脑如何生成语言。 此外,还有数理语言学、统计语言学、实验语音学等。 第一章语言的功能 第一节语言的社会功能 一、语言的信息传递功能 信息传递功能是语言的最基本的社会功能。 人类还借助语言之外的其他形式传递信息,它们是文字,旗语,信号灯,电报代码,数学符号,化学公式等等。 身势等伴随动作等是非语言的信息传递形式。 身势等非语言的形式多半是辅助语言来传递信息; 文字是建立在语言基础之上的最重要的再编码形式; 旗语之类是建立在语言或文字基础之上的再编码形式; 语言是人类社会信息传递第一性的、最基本的手段,是最重要的交际工具。二、语言的人际互动功能 语言的社会功能的另一个重要方面是建立或保持某种社会关联,这就是语言的人际互动功能。互动包括两个方面:一个是说话者在话语中表达自己的情感、态度、意图,另一方面这些又对受话者施加了影响,得到相应的语言或行动上的反馈,从而达到某种实际效果。

语言学概论00541史上最全(吐血整理) 汇总 简单题+名词解释 小抄笔记

27.书面语:书面语是用文字记录的语言形式,它是文字产生或在口语的基础上产生的,书面语是经过加工、提炼和发展了的口语的书面形式。 26.口语:就是有声的口头语言,任何一种语言都有口头存在形式。它是书面产生的基础。 28.语言相关论:语言相关论是萨丕尔和沃尔夫提出的关于语言与思维关系的观点,主张语言决定思维,不同的语言就有不同的思维方式。 29.大脑语言功能临界期:大脑语言功能临界期是指大脑的单侧化,大脑左半球的分区以及语言的遗传机制,都只提供人具有语言能力的潜在可能性,这些潜能必须在一定期限内被一定的语言环境激活才可能起作用。26.语言符号的所指 :语言符号的所指是符号的形式所指的意义内容。 29.机器翻译:通过计算机把一种语言自动翻译成另一种或多种自然语言的信息处理技术。 26.语音:语音是人的发音器官发出的、用于人与人之间交际并表达一定意义的声音。 27.词:词是最小的、有意义的、能够独立运用的语言单位。 28.语用:语用指语言运用,即人们在一定的交际环境中对语言的实际运用。 29.文字:文字是记录语言的书写符号系统。 27.单纯词:单纯词是由一个构词语素构成的词。 29.屈折:屈折是通过词的内部发生语音的交替变换来改变词的语法意义的手段。 28.意译词:是用本族语言的构词材料和规则构成新词,把外语中某个词的意义翻译过来。 27.仿译词:是用本族语言的语素逐个对译外语原词的语素造成的词,它不仅把原词的词义翻译过来,而且保持了原词的内部构成方式。 29.主谓词组:两个成分之间具有被说明和说明关系的词组是主谓词组。 27.复辅音:一个音节内处于同一个肌肉紧张的渐强阶段或渐弱阶段上的两个或两个以上辅音的组合。 27.双语现象:某一言语社团使用两种或多种语言的社会现象,具体而言是社团内的全体成员或部分成员双语并用的现象。 28.亲属语言:从同一种语言中分化出来的各个语言叫亲属语言,亲属语言之间具有历史同源关系。 26.调位:利用音节内的音高差别来起辩义作用的语音单位叫做调位,调位是一种非音质音位,依附在音位的组合序列上。 29.词组:实词与实词之间具有直接联系的相对独立的词群。 28.语素:语素是语言中音义结合的最小单位。 28.词尾:附着在词干后的,能改变词的语法形式,但不能构成新词的语素。 29.语素:音义结合的最小语言单位。 26.词类:词类是词在语法上的分类。它指可以替换出现在语法结构某些共同组合位置上的词的类,即具有聚合关系的词的类。 27.词法:(1)词法主要描写词的形态特征和词形变化规则。例如,俄语的名词在形式上有单数和复数的区别,有阳性、阴性、中性等性的区别,有主格、宾格、属格等格的区别,这些都是典型的词法现象。(2)由于印欧语言中构词单位、构词方式和词类都与词的形态变化相关,因此构词和词类问题也成为词法的一部分。27.语法意义:语法意义是语法形式所体现的意义,是语言中通过一类形式或功能所获得的意义。二者相辅相成,不可分离。如“动词+名词”有动宾关系的意义,汉语所有的同类组合都是如此,这种意义就是一种语法意义。 27.语法形式:语法形式就是能体现表达某种语法意义的形式。表示某一类语法意义或者有共同作用的形式,如词类形式、组合形式、虚词形式,就是语法形式。语法形式不是个别的语音形式和词语形式,但能产生某一类意义或者有共同作用的语音表现形式或者词形变化形式也是语法形式。 27.语法手段:根据语法形式的共同特点所归并的语法形式的基本类别叫做语法手段。语法手段可分为词法手段和句法手段两大类。通过词形的变化来表现语法意义的形式是词法手段;通过结构的变化来表现语法意义的形式是句法手段;例如英语名词后加s表示复数,英语动词后面加ed表示过去时,就是词法手段中的词形变化。 28.自源文字:自源文字指独立发展起来的文字。如古埃及文字、苏美尔文字、汉字,这些文字的形体、体系都是由最早使用该文字的人们独创的。 29.语音合成(1)语音合成是语音信息处理研究中的主要工作。 (2)语音合成就是让计算机模拟人的发音器官的动作并发生类似的声音。如汉语的语音合成目前已初步实现自动生成声韵调结合的音节。 26.句子:句子是词或词组按一定规则组合成的、能表达相对完整的意义、前后有较大停顿并带有一定的语气和句调的语言单位。 27.异化:语流中两个相同或相近的音,其中一个因受另一个影响而变得不相同或不相近。

索绪尔及其《普通语言学教程》之心得

费迪南德?德?索绪尔(Ferdinand de Saussure,1857-1913)是现代语言学的创始人。他是一位杰出的语言学家。作为一门新兴人文学科的开创者,他对语言哲学的影响也极为广泛深刻。 索绪尔出生于日内瓦,父亲是一位科学家。他从小受到自然科学的教育,同时也得到良好的语言教育和语言学教育,掌握法语、德语、英语和拉丁语,初通梵文。15岁时就写了一篇《语言论》。曾于日内瓦大学和莱比锡大学,研习物理、化学和希腊文。莱比锡大学当时是新语法学家的中心,在那的学习大致确定了索绪尔后来以语言学为业的道路。也就在这个时期,他发表了他的第一篇重要论文,《论印欧系语言中原因的原始系统》,引起学术界的重视,而那时他才年仅21岁。获得博士学位后,索绪尔移居巴黎,在高等研究学院讲授梵文、哥特语、古高地德语以及印欧语文学概况。1891年,他开始到日内瓦大学任教。日内瓦与巴黎的学术研究相比相对滞后。索绪尔穷究一生,不带任何传奇色彩。他在世时只是著名的语言学家,但他作为一个哲学家的地位,却是直到他死后才为人们所认可的。 索绪尔生前只发表过很少几篇相当专业的论文。1907-1911年期间,他在日内瓦大学担任普通语言学课程的教学。1913年他去世以后,他的学生和同事根据几本听课笔记才汇编成《普通语言学教程》一书,出版发行。索绪尔不仅吝于发表,他留下的笔记也很少,因此编辑这本书很不容易。因为,跟所有的老师一样,他讲课时也是有很多重复,甚至不一致的内容。难得的是编辑者们没有放弃,合并梳理成一本书,从而造就了一部惊世巨著。 《普通语言学教程》这部著作主要由绪论和附录两部分组成。绪论部分主要阐述了索绪尔对于语言系统的看法。索绪尔认为语言系统具有自主性和形式化这两个特点。他把语言现象划分为“内部要素”和“外部要素”两部分,并以此作为语言研究的前提。“内部要素”是指语言系统内符号与符号之间所形成的相互制约、相互对立的关系;“外部要素”则是指与语言有间接关系的政治、经济、文化、宗教、地理、历史等社会因素。因为索绪尔认为“内部要素”与“外部要素”之间无联系,且进行语言研究必须建立起一个界限清晰的“语言系统”。所以,他说:“我们关于语言的定义是要把一切跟语言的组织、语言的系统无关的东西,简言之,一切跟我们用‘外部语言学’这个术语所指的东西排除出去。”另外,索绪尔还阐发了“语言符号的价值决定于语言系统整体性质”的观点,并将此观点以及上面所提及的观点合在一起,共同支撑起关于语言系统具有自主性的说法。实际上,此举的真正目的是为语言学的研究对象下定义,且以此厘清语言和言语之间的关系。 语言是言语行为的社会部分,是个人被动地从社会接受而储存于头脑中的系统。它存在于个人意志之外,是社会每个成员共同具有的,是一种社会心理现象。言语是言语行为的个人部分,是个人对语言系统的运用。语言和言语紧密相连,互为前提。个人要说话使人理解,必须用语言,同时语言的存在又必须体现在言语当中,而且,使语言发生变化的也是言语。所以,语言既是言语的工具,又是言语的产物,但“这并不妨碍它们是两种绝对不同的东西” 在对语言学进行概述之后,《普通语言学教程》的附录部分进一步详细叙述了索绪尔的音位观、符号观以及结构主义研究方法论。他认为语言可为语音符号和文字符号,语音由心灵激活而被赋予意义,文字则只是语音的无生命的、随意的、可有可无的替代物。在符号观中,索绪尔对符号的“任意性”和“线条性”展开阐述,并且重点论述了符号的“不变性”与“可变性”特点。由此他不但揭

语言学概论_自考笔记+自考资料

科目:语言学概论 1.1.能指 1.2.所指 1.3.普通语言学 1.4.应用语言学 1.5.传统语言学 2.1.语音 2.2.音质 2.3.基音和陪音 2.4.语音的生理基础 2.5.口音、鼻音、鼻化音 2.6.主动的发音器官和被动的发音器 官 2.7.宽式标音和严式标音 2.8.标准元音 2.9.口元音和鼻化元音 2.10.音位的条件变体和音位的自由 变体 2.11.音渡 2.12.音节结构的元辅音分析法 2.13.韵头和韵尾 2.14.语流音变 2.15.时位 2.16.调值和调类 2.17.连续变调 2.18.调位 2.19.固定重音和自由重音 2.20.主重音和次重音 2.21.重位 2.22.语调 2.23.发音部位 2.24.音素 2.25.韵律特征 3.1.语汇学 3.2.古语词 3.3.方言词 3.4.外来词 3.5.科技术语和行业语 3.6.歇后语 3.7.变形成词中的逆序成词3.8.变形成词中的简缩成词 3.9.复合构词 3.10.附加构词 3.11.离合词和词组词 4.1.语法 4.2.历时语法和共时语法 4.3.普遍语法和个别语法 4.4.核心语法和外围语法 4.5.虚词 4.6.辅助词和功能词 4.7.向心词组 5.1.语义 5.2.词汇意义和语法意义 5.3.语义的民族性 5.4.词义 5.5.词的感情色彩 5.6.义素 5.7.单义词和多义词 5.8.述谓结构 5.9.语义角色 5.10.语义指向 5.11.蕴含 6.1.他源文字 6.2.单纯字符和复合字符 6.3.词语文字和语素文字 6.4.音位文字 6.5.表意文字和表音文字 6.6.假借字 6.7.楔形文字 6.8.象形字和会意字 6.9.独体字和合体字 6.10.音节文字 7.1.语音对应关系 7.2.语言的亲属关系 7.3.原始基础语和子语 7.4.标准语 7.5.双言现象 7.6.克里奥耳语 7.7.语言政策 7.8.语言规范化 7.9.语言规划 7.10.基础方言 7.11.语系 8.1.语言思维和非语言思维、形象思 维 8.2.语言能力问题 8.3.失语症 8.4.语言遗传机制 8.5.文化局限词语 9.1.第一语言教学 9.2.外语教学的翻译法 9.3.外语教学的听说法 9.4.母语语言教学和语文教学 9.5.词典 9.6.语言词典 9.7.应用语言学 9.8.第二语言教学 9.9.语言迁移 9.10.语言获得 9.11.中介语 名词解释题答案 1.1.能指是语言符号的物质实体,能 够指称某种意义的成分。 1.2.所指是语言符号所指称的意义内 容,是语言符号的物质实体。 1.3.语言学界把研究人类社会的语言 这种社会现象的一般理论称为普通 语言学。 1.4.语言学界把语言学的理论和具体 成果用来为社会实际生活中的某个 领域服务,这是广义的应用语言学; 狭义的应用语言学是指专门研究语 言教学中的理论和方法。 1.5.传统语言学一般泛指20世纪以 前的语言学,特别是指索绪尔开创 的结构主义语言学以前的语言学。 2.1.语音是由人的发音器官发出的, 负载着一定的意义,并作为语言符 号系统载体的声音。 1.1.如何理解言语交际是一个编码和 解码的过程? 1.2.简述书面语产生的重大意义。 1.3.为什么说语言符号是形式和意义 的统一体? 1.4.在汉语和英语中可以发现:①作 为初始符号,“猫”这个意思,汉语 用“猫”(māo)来表示,而英语用 cat来表示;“书”这个意思,汉语 用“书”(shū)来表示,而英语用 book来表示。②汉语的复合符号, “新书”不同于初始符号“书”;英 语的复合符号newbook不同于初始 符号book。请用语言符号性质的理 论对上述现象作出简要说明。 1.5.举例说明语言符号的任意性。 1.6.为什么语言符号既具有强制性又 具有可变性?

语言学概论(笔记整理)

. What is language? “Language is system of arbitrary vocal symbols used for human communication. It is a system, since linguistic elements are arranged systematically, rather than randomly. Arbitrary, in the sense that there is usually no intrinsic connection between a work (like “book”) and the object it refers to. This explains and is explained by the fact that different languages have different “books”: “book” in English, “livre” in French, in Japanese, in Chinese, “check” in Korean. It is symbolic, because words are associated with objects, actions, ideas etc. by nothing but convention. Namely, people use the sounds or vocal forms to symbolize what they wish to refer to. It is vocal, because sound or speech is the primary medium for all human lan guages, developed or “new”. Writing systems came much later than the spoken forms. The fact that small children learn and can only learn to speak (and listen) before they write (and read) also indicates that language is primarily vocal, rather than written. The term “human” in the definition is meant to specify that language is human specific. . What are design features of language? “Design features” here refer to the defining properties of

相关文档
相关文档 最新文档