C语言重点难点总结


2、自增自减操作符:++在前先++,++在后后++,- -同理
3、赋值和复合赋值操作符:
ቤተ መጻሕፍቲ ባይዱ
加法赋值:X+=Y 即 X=X+Y ,X—=Y 即 X=X—Y
,X*=Y 即 X=X*Y
X/=Y 即 X=X/Y ,X%=Y+Z 即 X=X%(Y+Z)
4、内部类型转换:转换原则为:把小类型提升为大类型,以防止数据被截断,损失精度。
判断质数 7、
求最大公约
选择排序
气泡排序
8、自动局部变量:当函数执行结束其自变量空间被撤销,生命周期结束,自生自灭,没有
“记忆” 9、静态局部变量:必须初始化,而且初始化语句只在函数第一次被调用时执行一次,以后 调用不再执行,其生命周期从初始化开始,到整个程序结束。 10、外部变量:生命周期从编译阶段开始,直到程序结束,外部函数不能访问
第七章:模块化程序设计
1、全局外部函数:表示函数的定义不在函数声明所在的模块中。 2、静态外部函数:一个外部函数只限于一个模块调用,其他模块不能调用。 3、const 限定修饰符:在模块单独编译阶段,就能够对“只读性”数据进行相应的安全性检 验。 4、const 型变量:“只读”变量。 5、const 型指针:const 修饰的是指针本身的空间。 6、全 const 型指针:const 修饰的既是指针本身的空间,又是指针指向的空间。
C 语言(校选课)重点难点总结
第一章:机器语言简介
1、冯 . 诺依曼于 1945 年提出“程序存储思想”。 2、程序=存储模式+算法,程序用机器指令组成,机器指令包括操作码和操作数。
3、机器语言程序:高级语言程序 (源程序)
编译程序
机器语言程序 (目标程序)
第二章:基本数据类型
1、数据类型决定空间的大小、数据的存储模式、以及实施的基本操作。 整型
数据类型
基本类型
固有类型 用户定义类型
实型 字符型 空类型
复合类型
2、整型数据 / 整型数据=取整,其它形式则为除法,整型数据 / 整型数据=求余 3、字符型数据应用最广泛的是 128 个标准字符——ASCII 字符集,其中大写字符代码加 32 就转化到小写字符代码。
第三章:操作符和表达式
1、在关系操作符中,如果关系成立,结果等于 1,表示“真”,否则,结果等于 0,表示“假”。
2、break 语句:它能够使程序流程跳出 switch 结构,也能结束循环。
3、continue 语句:只能用于循环结构,能够提前结束本轮循环的循环语句,执行循环体下 面的语句。
第五章:指针和数组
1、指针本身的值是地址,地址相当于无符号整型数,其中 void 型指针没有算术运算。 数组是一组空间前后相邻、类型相同、个数有限的变量。 2、不论是数组指针还是指向数组的指针变量,只要间接引用超出数组元素范围,就是“野 指针”。 3、选择排序中要进行“备份,三角交换” 4、数组变量指针和数组指针的区别:以一个长度为 5 的整型数组 a 为例,数组变量 a 的指 针为&a,基类型为[int]5,&a+1 比&a 增加 20,数组指针 a+1 比 a 增加 4,
第六章:函数
1、两个函数,如果其中一个调用另一个,则前者成为主调函数,后者称为被调函数。 2、形参列表中的变量成为形参,实参列表中的表达式称为实参。 3、函数调用过程:
a、主调函数通过实参给被调函数的形参初始化。 b、如果被调函数有返回值,那么系统根据被调函数类型创建一个临时变量,用返回值给 临时变量初始化。 C、主调函数如果需要被调函数的返回值,就从这个临时变量取值。 4、一个无返回值、形参列表为空的函数,其功能是输出星型线。 5、值传递和址传递:在值调用中,实参 a 和 b 值没有交换。在指针调用中,a 和 b 的值交 换了。 6、函数声明:函数必须先定义后调用,一个函数如果在调用之前做了声明,他就可以在声 明后的任何位置定义。
第八章:字符串
1、字符串:是典型的非数值的对象,是有效字符序列,结尾加标识符’\0’ 2、有效字符串个数称为字符串长度,’\0’不是字符串的字符,仅仅是字符串结束标志。 3、空串不包含有效字符,串长为 0,含有一个空格字符的串包含一个空格,串长为 1。 4、回文:就是去掉空格之后的字符串是中心对称的。 5、判断回文: a、设变量 i 和 j 分别是字符串的首尾字符下标,变量 token 做标识,初始值为 1,表示对称。 b、如果 i 小于 j,则重复步骤 3,否则执行步骤 4 c、下标 i 从右向左遍历,直到指向非空格字符为止,下标 j 从左向右遍历,直到指向非空格 字符为止。然后比较 i 和 j 的字符,如果不同,则修改标识为 0,表明不对称,如果相同, 则 i 值加 1,j 值减 1,返回步骤 2 d、返回标识 6、删除空格字符:把连续的字符当做一个字符段,移动连接字符段。 7、字串删除:把源串分为前、中、后三段,中段为待删除字串,连接前后两段,实现删除。
5、赋值兼容性:不损害数据的准确性
第四章:程序流程控制
1、语句组织形式包括:顺序结构、选择结构、循环结构。
选择结构
If-else 语句 Switch 语句
循环结构
For 语句 While 语句
do_while 语句
程序:利用格里高利公式求。∏的值
。 循环嵌套:一个循环语句中的循环体还可以包含循环语句,这样就形成循环嵌套
合集下载

大一下学期C语言期末重点知识点总结

大一下学期C语言期末重点知识点总结

大一下学期C语言期末重点知识点总结在大一下学期的C语言课程中,我们学习了很多基础的编程概念和技能。

在期末考试前,我们需要对学过的知识做一个全面的复习和总结,以便更好地准备考试。

以下是我根据学习笔记和教材整理的大一下学期C语言期末重点知识点:1. 指针指针是C语言中最重要的概念之一,理解指针的意义和使用方法对于提高程序员的编程能力至关重要。

指针有如下使用方法:1. 定义指针变量:定义指针变量需要指定一个指针类型,例如int*。

在定义后,我们可以将其赋值为一个地址。

2. 操作指针变量:操作指针变量时,我们可以使用两个运算符:*和&。

*运算符表示取出指针指向地址中的值,而&运算符表示获取地址。

3. 指针作为函数参数:函数可以定义一个参数作为指针类型,然后使用指针来传递变量的地址,以便在函数中对其进行修改。

4. 动态分配内存:使用malloc函数可以动态分配内存,返回指向所分配内存的指针。

动态分配内存的好处是我们可以在运行时根据需要动态地按照需要分配内存。

2. 结构体结构体是C语言中另一个重要的概念。

它允许我们定义一个包含多个成员(变量)的类型。

每个成员可以是不同的类型。

我们可以按照如下方式定义结构体:1. 关键字struct:使用关键字struct来定义结构体类型。

例如,我们可以定义一个名为student的结构体类型,它包含名字和年龄两个成员。

2. 内部成员:我们可以在结构体内部定义成员变量。

成员变量的类型可以是任何C语言类型。

3. 访问结构体成员:我们可以通过相应的结构体变量和“.”运算符来访问结构体成员。

4. 结构体指针:我们也可以定义指向结构体的指针,类似于定义指针变量。

使用->运算符来访问结构体指针所指向的成员。

3. 数组数组是C语言中最常见的数据类型之一。

数组是一种容器,可以存储一组有序的数据。

以下是常见的数组操作方法:1. 定义数组变量:定义数组变量时需要指定一个类型和用于存储数据的空间大小。

C语言知识点总结(完美版)

C语言知识点总结(完美版)

C语言知识点总结(完美版)C语言最重要的知识点总体上必须清楚的:1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。

2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。

3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。

byte 是指字节, 一个字节 = 八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。

C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2、#define PI 3.1415926; 这个写法是错误的,一定不能出现分号。

3、每个C语言程序中main函数是有且只有一个。

4、在函数中不可以再定义函数。

5、算法:可以没有输入,但是一定要有输出。

6、break可用于循环结构和switch语句。

7、逗号运算符的级别最低,赋值的级别倒数第二。

第一章 C语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。

2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。

3、一个C语言程序有且只有一个main函数,是程序运行的起点。

第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。

2、每个C语言程序写完后,都是先编译,后链接,最后运行。

(.c—.obj—.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。

(常考!)第三节、标识符1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。

关键字:不可以作为用户标识符号。

main define scanf printf 都不是关键字。

迷惑你的地方If是可以做为用户标识符。

因为If中的第一个字母大写了,所以不是关键字。

c语言的知识点,难点

c语言的知识点,难点

C语言的知识点和难点总结C语言是一种基础编程语言,广泛应用于系统软件、嵌入式系统、游戏开发等领域。

在学习C语言的过程中,我们会遇到一些知识点和难点。

下面,我们将对C语言的知识点和难点进行总结。

一、知识点:1.数据类型:C语言支持多种数据类型,包括整型、浮点型、字符型等。

这些数据类型的使用是C语言编程的基础,需要熟练掌握。

2.运算符:C语言提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符等。

理解并正确使用这些运算符是编写高效代码的关键。

3.控制结构:C语言中的控制结构包括条件语句(如if-else)、循环语句(如for、while)等。

掌握这些控制结构是实现程序逻辑的关键。

4.函数:函数是C语言的基本模块,用于实现特定的功能。

了解如何定义函数、调用函数以及传递参数是十分重要的。

5.指针:指针是C语言的特色之一,它允许我们直接访问内存地址。

理解指针的概念和用法对于深入学习C语言至关重要。

6.结构体与联合:结构体和联合是C语言中处理复杂数据结构的重要工具。

通过它们,我们可以组合不同类型的数据并进行操作。

二、难点:1.指针操作:由于指针直接涉及内存地址,因此对初学者来说可能较难理解。

掌握指针的基本概念、声明、初始化和使用是C语言学习的难点之一。

2.内存管理:在C语言中,程序员需要直接管理内存。

如何正确地分配和释放内存是避免内存泄漏和段错误的关键,也是学习C语言的难点。

3.深度递归:深度递归可能导致栈溢出或性能问题,因此在实际应用中需要谨慎处理。

理解递归原理并在合适的场景下应用是C语言学习的一个难点。

4.多线程编程:多线程编程涉及线程的创建、同步和通信等复杂概念,对于初学者来说可能较难掌握。

理解多线程的原理和应用是多线程编程的难点之一。

学习c语言编程总结(共31篇)

学习c语言编程总结(共31篇)

学习c语言编程总结第1篇为期一周的C语言实验室实践学习已经结束,这是对自己上学期的C语言学习的检验,同时也对于旧知识、旧思路的复习理解提供了很好的机会。

于其中的.漫漫路也是给了我许多感触。

(1)“独木不成林”。

单凭个人力量若要有所成就着实不易。

即便非大成功,就C语言程序的设计而言,若仅个人之力,有些问题想破脑袋仍无结果,有时却只需老师、同学轻轻一点便迎刃而解。

不仅效率可大大提高,亦能增进与人交流机会,促进彼此情感。

反之,倘若一个人独立行走,就可能走极端,反思路做题,结果显而易见。

(2)细心方面仍是一个大问题。

一次次“运行失败”其实更多是因粗心引起。

仅小小的分号,就不知漏了几次。

抑或是少了个括号,少了个等号,便显示程序无法运行或者进入了死循环。

很多时候,碎小的个体会影响到整个工程效果。

所谓“牵一发而动全身”,C语言编程是这个理,而生活很多其他问题不也是如此吗?(3)“锲而不舍,金石可镂”。

很多题目需要靠坚持才能有结果。

一次次编写的程序无法运行,一次次的改正无法获得”编译成功“的认可,心情有多糟无需多说。

此时倘若将其放掉,那这个题目可能就永远被埋掉了,那些错误之处也就再无机会得到修正,那个知识点也可能从此漏了。

(4)同时还更为深刻理解了模块化编程的重要意义。

以模块化方式考虑程序结构,以函数形式书写复杂的程序是C语言编程的重要思路。

不仅利于错误检查,也大大提高了速率。

(5)需注意巩固过往知识,熟悉它们的用途。

就如函数f4(题9)程序的编写,原本在判断两数是否为质数时只需用“&&”就能很好解决,实际编写中却用了分开判断的思路,使得问题变复杂了,程序编写自然困难了许多。

坦白说,刚开始得知还有个C语言专周用来搞这个,心情一下子变灰色调了。

跟C语言不熟不说,就算懂,也是没什么兴趣的。

想起上学期,就它最折腾我的。

现在想来,倒觉得多亏了学校有这个安排。

不仅复习了一些基本知识,也大大提高了对C语言的兴趣。

C语言程序设计项目重点与难点

C语言程序设计项目重点与难点

C语言程序设计项目重点与难点《C程序设计》实验项目重点与难点1.C程序的运行环境和运行C程序的方法重点:简单的C程序格式,包括main()函数、数据说明、函数开始和结束标志等。

难点:编程入门以及对语言的理解。

2.数据类型、运算符和简单的输入输出重点:C的几种基本数据类型,不同类型数据间的混合运算规则;不同运算符的使用特点,清楚每种运算符的优先级与结合性;各种表达式的含义与使用要点。

难点:不同类型数据间的混合运算;运算符的优先级与结合性。

3.顺序程序设计重点:顺序结构程序的表达式语句形式;输入/输出函数的表示与调用方法;利用流程图加深对顺序结构程序的理解。

难点:格式输入与输出表示中各种格式字符的表示含义。

4.选择结构程序设计重点:关系、逻辑运算符及其表达式的语法形式;if语句;switch 语句。

难点:关系与逻辑运算符表达式的结果判定;if语句嵌套的层次判定;程序中使用break语句运行结果的判定。

5.循环结构程序设计重点:while语句、do…while语句、for语句的结构及其使用方法;break 语句和continue的应用及其区别;难点:常用的循环程序设计方法及算法特点,并能编写相应的程序。

6.数组重点:一维数组、二维数组;字符数组与字符串的概念与定义方法,常用的字符串处理函数。

难点:数组下标的起始数问题;利用数组形式进行程序设计的一般方法与典型算法。

7.函数重点:函数定义的一般形式;函数的调用的几种形式;函数嵌套调用的一般过程;数组名作为函数的参数的一些特点;局部变量与全局变量的概念及它们的使用特点。

难点:不同的函数参数传递方法在程序中应用的结果判定;利用函数调用方法实现程序设计中涉及的参数定义、参数传递以及返回值问题;函数调用的理解。

8.指针重点:指针变量定义、初始化和引用;数组的指针和指向数组的指针变量;字符串的指针和指向字符串的指针变量;指针数组与指向指针的指针。

难点:指针概念深刻理解;区别指向数组的指针和指针数组;指向指针的指针;有关指针的数据类型定义和指针的相关运算。

C语言各章节知识点总结

C语言各章节知识点总结

C语言各章节知识点总结C语言是一种常用的编程语言,广泛应用于操作系统、嵌入式系统、网络设备等领域。

下面是C语言各章节的知识点总结。

第一章:C语言概述1.C语言的起源和发展历史。

2.C语言的特点和优势。

3.C语言的应用领域和重要性。

4.C语言的编译过程和基本语法规则。

第二章:基本数据类型和运算符1.C语言的基本数据类型,如整型、浮点型、字符型等。

2.基本数据类型的存储范围和格式化输出。

3.C语言的运算符和运算符优先级。

4.表达式和赋值语句。

第三章:控制语句1. 条件语句,如if语句、switch语句。

2. 循环语句,如for循环、while循环、do-while循环。

3. 循环控制语句,如break语句、continue语句。

第四章:数组和指针1.数组的定义和初始化。

2.一维数组和二维数组的使用。

3.字符数组和字符串的处理。

4.指针的定义和操作。

5.数组和指针的关系。

第五章:函数1.函数的定义和调用。

2.函数的参数传递和返回值。

3.局部变量和全局变量。

4.递归函数和函数指针。

5.函数库的使用。

第六章:结构体和共用体1.结构体的定义和初始化。

2.结构体的访问和操作。

3.结构体数组和结构体指针。

4.共用体的定义和使用。

第七章:文件操作1.文件的打开和关闭。

2.文件的读写操作。

3.文件指针和文件的定位。

4.随机访问文件。

5.文件的错误处理和异常处理。

第八章:预处理和编译1.C语言的预处理指令和宏定义。

2.头文件的引用和包含。

3.条件编译和预处理器的工作过程。

4.编译和链接的过程。

第九章:动态内存管理1.动态内存分配和释放。

2. malloc函数和free函数的使用。

3.内存泄漏和内存溢出的问题。

4.堆和栈的区别和管理。

第十章:指针的高级应用1.指针数组和指向指针的指针。

2.函数指针和回调函数。

3.结构体指针和链表的操作。

4.动态内存分配和指针的应用。

第十一章:位运算和位域1.位运算的基本操作,如与、或、非、移位等。

C语言各章节知识点总结

C语⾔各章节知识点总结第⼀部分“C语⾔基础知识”知识点1、C程序的基本结构C程序是由函数构成的。

每个程序由⼀个或多个函数组成,其中必须有且仅有⼀个主函数main( )。

main函数是⼀个可执⾏C语⾔程序的⼊⼝和正常出⼝,⽽不论其在整个程序中书写的位置如何。

在C语⾔中,⼤⼩写字母是有区别的。

(例如习惯使⽤⼩写字母定义变量,⽤⼤写字母定义常量)。

C程序的注释有两种⽅法,⼀种是⾏注释,使⽤“//”;另外⼀种是块注释,使⽤“/* */”,注意“/*”与“*/”不能嵌套使⽤。

C语⾔书写较为灵活,但是提倡采⽤缩进格式进⾏程序书写,以体现语句之间的层次感。

C程序每条语句以“分号”作为结束标志。

以下⼏种情况不得使⽤分号:(1)所定义的函数名称后不得使⽤分号;(2) if…else…语句是⼀个整体,中间不能使⽤分号将其分隔开;(3)预编译命令后不能使⽤分号。

2、C程序开发步骤C语⾔在计算机上的开发过程主要由以下四个步骤组成:第⼀步:编辑。

⽣成后缀名为“.c”的源⽂件第⼆步:编译。

⽣成后缀名为“.obj”的⽬标⽂件第三步:连接。

⽣成后缀名为“.exe”的可执⾏⽂件第四步:运⾏。

3、VC++6.0开发⼯具的使⽤按下功能键Ctrl+F7编译程序;按下功能键F7连接程序;按下功能键Ctrl+F5运⾏程序;若程序在编译和连接过程中有语法错误,则按下功能键F4定位错误所在⾏并根据错误提⽰信息改正错误(原则是先解决error,再解决warning)。

4、C语⾔中标识符的命名规则标识符由字母、数字、下划线组成;规定第⼀个字符必须为字母或下划线。

标识符定义的变量名、函数名、常量名等最好做到“见名知义”;⼤⼩写代表不同含义;不能使⽤关键字;最好不要与C语⾔的库函数同名。

5、C语⾔的数据类型C语⾔的数据类型由基本类型和复杂类型构成。

其中基本数据类型包括字符型(char)、整型(int,short,long)、实型(float,double);复杂数据类型包括指针类型、数组、结构体、联合体。

c语言重点笔记

c语言重点笔记C语言重点笔记一、基础语法1.注释:用于解释代码,不会被编译器执行。

单行注释以“//”开头,多行注释用“/* */”包围。

2.变量:用于存储数据。

定义变量时需要指定类型和名称,如int num;赋值时使用等号,如num=10;也可以在定义时进行赋值,如int num=10;3.数据类型:C语言提供了基本的数据类型,包括整型、浮点型、字符型等。

4.运算符:C语言提供了各种运算符,包括算术运算符、关系运算符、逻辑运算符等。

5.控制语句:C语言提供了各种控制语句,包括条件语句、循环语句等。

二、函数1.函数定义:函数是一段可重复使用的代码块。

定义函数需要指定返回值类型、函数名和参数列表。

如int add(int a, int b) { return a + b; }2.函数调用:调用函数时需要使用函数名和参数列表,并根据返回值类型进行接收。

如int result = add(1, 2);3.递归函数:递归是一种特殊的函数调用方式,在函数内部调用自身。

需要注意避免死循环。

三、数组1.数组定义:数组是一组相同类型的数据。

定义数组时需要指定类型和长度,如int arr[5];2.数组初始化:可以在定义时进行初始化,如int arr[5] = {1, 2, 3, 4, 5};3.数组访问:使用下标访问数组元素,下标从0开始,如arr[0]表示数组的第一个元素。

4.多维数组:多维数组是由一维数组组成的。

二维数组可以看作是一个矩阵,定义时需要指定行数和列数。

四、指针1.指针定义:指针是一个变量,用于存储另一个变量的地址。

定义指针时需要指定类型和名称,如int *p;2.指针运算:可以对指针进行加减运算,表示移动指针位置。

3.指针与数组:可以使用指针访问数组元素,如int *p = arr; p[0]表示arr[0]。

4.空指针:空指针是没有被初始化的指针。

五、结构体1.结构体定义:结构体是一种自定义数据类型,可以包含多个不同类型的成员变量。

大二c语言期末考试知识点总结

大二c语言期末考试知识点总结C语言作为一门通用的高级编程语言,广泛应用于软件开发、嵌入式系统以及科学计算等领域。

作为大二学生,我们所学的C 语言知识也逐渐深入,为期末考试做好充分的准备非常重要。

下面是我对大二C语言期末考试的知识点进行的总结:一、基本语法和数据类型1. C语言的基本组成部分(头文件、函数、变量等)2. 基本数据类型(整型、浮点型、字符型等)3. 常量和变量的定义及使用4. 运算符(算术运算符、关系运算符、逻辑运算符等)5. 条件语句(if语句、switch语句)6. 循环语句(while循环、for循环)二、数组和字符串1. 数组的定义及使用2. 数组的初始化和操作3. 多维数组的定义和使用4. 字符串的定义和操作5. 字符串的输入输出6. 字符串的比较和拼接三、函数和指针1. 函数的定义和调用2. 函数的参数传递(值传递、地址传递)3. 函数的返回值和递归调用4. 指针的定义和使用5. 指针与数组的关系6. 动态内存分配和释放四、文件操作1. 文件的打开和关闭2. 文件的读取和写入3. 文件指针的操作4. 文件的复制和删除5. 文件的位置指示器和定位五、结构体和枚举1. 结构体的定义和使用2. 结构体的成员和操作3. 枚举类型的定义和使用4. 枚举类型的遍历和比较六、高级特性1. 内存管理(静态内存、栈内存和堆内存)2. 预处理器指令(宏定义、条件编译)3. 大型程序的模块化设计4. 异常处理和错误调试5. 指针与函数指针的应用6. C语言的标准库函数(文件操作、字符串处理、数学函数等)以上是大二C语言期末考试的主要知识点总结,希望对你的复习有所帮助。

在备考期间,要保持良好的学习习惯,多进行实验和编程练习,加深对知识点的理解与掌握。

祝你在考试中取得优异的成绩!。

c语言重点知识点总结

c语言重点知识点总结c语言重点知识点总结上学的时候,说起知识点,应该没有人不熟悉吧?知识点是指某个模块知识的重点、核心内容、关键部分。

还在苦恼没有知识点总结吗?下面是小编帮大家整理的c语言重点知识点总结,欢迎大家分享。

c语言重点知识点总结篇1◆知识点1:交换两个变量值的方法1)采用第三方变量(最容易想到的方法)2)采用加减法进行值得交换(面试时常用**)代码如下:b = a - b;a = a - b;b = a + b;3)采用按位异或的位方式代码如下:a = a^b;b = a^b;a = a^b;◆知识点2:取语言重点知识点总结余运算%的结果与被除的符号相同,结果为两个正数取余后前面加符号◆知识点3:sizeof的使用sizeof是一种运算符不要想当然理解为函数sizeof使用时可以不加()sizeof可以加变量、常量、数据类型跟数据类型是必须加()◆知识点4:static和 extern区别是能否进行跨文件访问①函数②变量1、对函数的作用:外部函数:定义的函数能被本文件和其他文件访问内部函数:定义的函数只能被本文件访问默认情况下,所有函数都是外部函数(相当于带关键字extern),所以可以省略extern作用:完整的定义和引用一个外部函数都加extern引用时也是默认是外部函数所以也省略externstatic作用:定义一个内部函数使用:static返回类型函数名(参数列表)不能被其他文件调用一个项目中,本文件的外部函数名不能和其他文件的外部函数同名(error)本文件中的内部函数(static)可以和其他文件的函数名同名的2、对变量的作用:全局变量分为两种:外部变量:定义的变量可以被其他文件访问①默认情况下所有的全局变量都是外部变量②不同文件中的同名外部变量都代表同一个③定义一个外部变量不加extern,声明才加extern同样的声明是没有错误的内部变量:定义的变量不能被其他文件访问不同文件的同名内部变量互不影响◆知识点5:数组的几种初始化方式如下:int a[3] = {10, 9, 6};int a[3] = {10,9};int a[] = {11, 7, 6};int a[4] = {[1]=11,[0] = 7};(知道有此种初始化方式即可)◆知识点6:数组的内存分析和注意点存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)【注:对于以后学习重要】数组名的作用,查看元素地址注意数组不要越界◆知识点7:字符串知识点"123”其实是由’1’、’2’、’3’、’’组成字符串的输出”%s”,’’是不会输出的◆知识点8 :字符串处理函数:strlen()计算的是字符数,不是字数计算的字符不包括’’,一个汉字相当于3个字符例子:"哈haha" 字符数为7从某个地址开始的数字符个数,知道遇到’’为止指针部分在C语言中占据重要地位,所以重点学习与整理了指针的知识:◆知识点9:指针定义的格式变量类型 *变量名如:Int *p◆知识点10:指针作用能够根据一个地址值,访问对应的.存储空间例:Int *p;Int a = 90;P = &a;*p = 10;//把10赋值给p所指的存储空间◆知识点11:指针使用注意Int *p只能指向int类型的数据指针变量只能存储地址指针变量未经初始化不要拿来间接访问其他存储空间◆知识点12:指针与数组遍历数组int ages[5] = {10, 4, 9, 44, 99};for(int i = 0; i<5; i++){printf("%d ", ages[i]);}使用指针遍历数组:int *p;// 指针变量P指向了数组的首地址p = &ages[0];// 使用指针遍历数组for(int i = 0; i<5; I++){printf("ages[%d] = %d ", i, *(p + i));}注:指针+ 1取决于指针的类型注:数组的访问方式数组名[下标]指针变量名[下标]*(p + i)◆知识点12:指针与字符串定义字符串的两种方式:1、利用数组Char name[] = “Andyzhao”特点:字符串里的字符可以修改适用场合:字符串内容需要经常修改2、利用指针Char *name = “itcast”特点:字符串是一个常量,字符串里面的字符不能修改使用场合:字符串的内容不需要修改,而这个字符串经常使用◆知识点13:预处理指令(三种):宏定义条件编译文件包含1、宏定义的配对使用和带参数的宏:#define#undef带参数的宏:#define sum(v1,v2) ((v1) + (v2))//括号是必须的例如:#define pingfang(a) a*a#define pingfang(a) (a*a)调用时pingfang(10)/pingfang(2)//不正确pingfang(5+5)//不正确带参数的宏效率比函数高2、条件编译(一般是判断宏的值)#if 条件#elif 条件#else#endif(非常重要)不然后面的代码全部无效3、文件包含:<>表示系统自带的文件,""表示自定义文件不允许循环包含,比如ah包含bh,bh又包含ah◆知识点14:typedef 只是给类型起了个别名并不是定义新类型struct Student{int age;char *name;};typedef struct Student Student;等价于typedef struct Student{int age;char *name;}Student;也等价于typedef struct {int age;char *name;}Student;类似的给枚举类型起名typedef enum Sex{Man,Women}Sex;下面这种情况的写法比较特殊//下面是函数指针类型的自定义数据类型,返回值类型和参数类型要匹配#includetypedef int (*TypeFuncPointer)(int, int);int add(int a, intb){return a + b;}int minus(int a, intb){return a - b;}int main(){TypeFuncPointer p = add;//使用自定义类型TypeFuncPointer p2 = minus;//使用自定义类型printf("add = %d ",p(1, 2));printf("minus = %d ",p2(1, 2)); return 0;}下面是定义结构体的指针类型typedef struct Student{int age;char *name;}*PtrStu;//使用方式Student stu ={18, "zhangsan"}; PtrStu p = &stu;宏定义也是可以为类型起名的#define Integer int相当于typedef int Integer注意和typedef的区别例如:typedef char * String#define String2char *。

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