C语言指针知识点总结精编版
C语言程序设计知识点—第8章 指针结构体与预处理命令
一个数组存储在一块连续内存单元中;数组名就是这块连续内存单元的首地址; 第 (i + 1) 个数组元素的地址可表示为 &data[i] 或 (data+i)。 可以通过以下方式为指向数组的指针赋值:
int a[10]; pa=&a[0]; // 或者 pa=a; 一个指针变量可以指向一个数组元素
主讲教师:杨剑
{ int a[3] = { 77, 88, 99 }; int i;
for (i = 0; i < 3; ++i) printf(“%d\n”, *(a + i));
return 0; } 答案: 77 88 99 本书习题八第 2 题阅读程序,写出结果 #include <stdio.h> int main() { int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int *p, *q;
point(char *p) {
p+=3; } main() {
char b[4]={„a‟,‟b‟,‟c‟,‟d‟},*p=b; point(p); printf(“%c\n”,*p); } 程序运行后的输出结果是() A.a B.b C.c D.d 答案:A
16. 函数返回指针
大多数情况,函数返回的都是一个简单类型的值 而有时,函数会产生一个数据对象(如数组、指针等),并且希望将这个对象返回给
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语言知识点重点
C语言知识点重点
C语言是一门广泛应用于计算机科学和编程领域的编程语言。它是一
种结构化的、面向过程的语言,相对于其他高级编程语言来说,C语言更
接近底层的硬件。
为了更好地理解和掌握C语言,以下是C语言的一些重要知识点:
1.变量和数据类型:
C语言中的变量用于存储数据。在声明变量时,必须指定其数据类型。C语言提供了基本的数据类型,如整数、浮点数、字符和布尔值,并且也
支持用户自定义的数据类型。
2.运算符:
C语言提供了多种运算符,用于执行各种计算任务。这些运算符包括
算术运算符(加、减、乘、除等)、逻辑运算符(与、或、非等)、关系
运算符(大于、小于、等于等)和赋值运算符。
3.控制语句:
在C语言中,控制语句用于控制程序的流程。常见的控制语句包括条
件语句(if-else语句)、循环语句(for循环、while循环)和跳转语
句(break语句、continue语句、return语句)。
4.函数:
函数是C语言中的基本组织单元,用于封装一系列相关的操作。C语
言提供了一些内置函数,如输入输出函数(printf、scanf等)和数学函
数(sin、cos等),同时也支持用户自定义函数。
5.数组与指针:
数组是一组相同类型的数据元素的集合。在C语言中,数组可以用于存储多个元素,并通过索引来访问每个元素。指针是一个变量,存储了内存地址。C语言中可以通过指针来操作变量的地址和值,这在编写高效的程序中非常重要。
6.结构体和联合体:
结构体是一种用户自定义的数据类型,用于将不同类型的变量组合在一起。联合体是一种特殊的结构体,它可以在相同的内存位置存储多个不同类型的变量,但只能同时使用一个变量。
C语言指针知识点
C语言指针知识点
C语言指针知识点
引导语:在信息工程中,指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中的寄存器(Register)。以下是店铺分享给大家的C语言指针知识点,欢迎阅读!
【考点1】指针变量
指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。
【考点2】指针变量的定义
格式为:类型名*指针变量名。二维指针int **p;可以理解为基类型为(int *)类型。
【考点3】指针变量的初始化
指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL。
指针变量两种初始化
方法一:int a=2,*p=&a;(定义的同时初始化)
方法二:int a=2,*p; (定义之后初始化)
p=&a;
【考点4】指针变量的引用
&是取地址符,*是间接访问运算符,它们是互逆的两个运算符。在指针变量名前加间接访问运算符就等价它所指向的量。
【考点5】指针的`运算
int *p 中 *p 和p 的差别:
*p 可以当做变量来用;*的作用是取后面地址p 里面的数值
p 是当作地址来使用。
*p++ 和(*p)++的之间的差别:改错题目中很重要
*p++是地址会变化。
(*p)++ 是数值会要变化。
三名主义:(考试的重点)
数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次)
函数名:表示该函数的入口地址。
字符串常量名:表示第一个字符的地址。
指针变量是存放地址的。并且指向哪个就等价哪个,所有出现*p 的地方都可以用它等价的代替指向的变量。
职高高二计算机c语言知识点总结
职高高二计算机c语言知识点总结C语言作为一门基础的编程语言,在计算机专业的学习中担任
着重要的角色。在高二阶段,我们需要掌握C语言的关键知识点,为今后的学习和工作打下坚实的基础。本文将对职高高二计算机
C语言知识点进行总结。
一、基本语法
1. 数据类型
C语言中常用的数据类型包括整型、浮点型、字符型和布尔型等。我们需要了解各种数据类型的表示方法以及其范围和特点。
2. 变量和常量
在C语言中,我们可以使用变量来存储和处理数据。变量需要
声明其类型和名称,并可以赋予初值。同时,我们也需要了解常
量的概念,常量是不可变的数据。
3. 运算符
C语言中提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等。我们需要熟悉各种运算符的使用方法和运算规则。
4. 控制语句
控制语句是我们编写程序时常用的语句,包括条件语句、循环
语句和跳转语句等。条件语句可用于实现分支选择,循环语句可
用于反复执行一段代码,跳转语句可用于改变程序的执行顺序。
二、数组和字符串
1. 数组
数组是一组具有相同类型的数据元素的集合,可以按照下标访
问其中的元素。我们需要了解数组的声明和初始化方法,以及如
何使用循环语句来对数组进行遍历和操作。
2. 字符串
在C语言中,字符串是由字符组成的字符数组。我们需要了解
字符串的表示方法、常见的字符串操作函数,并能够使用字符串
进行输入输出、比较和连接等操作。
三、函数
函数是C语言程序的基本模块,通过函数可以实现代码的重用和模块化。我们需要了解函数的声明和定义方法,以及函数参数的传递方式。同时,还需要学会使用常见的数学函数和字符串处理函数。
C语言指针详解
C语言指针详解
1 程序如何运行
当我们打开电脑中的任何一个程序运行时,我们的操作系统会将该程序存在硬盘的所有数据装载到内存中,然后有CPU 进行读取内存中的数据并进行计算,并将计算的结果返回给我们的操作系统,然后操作系统将相应的动作交付给相应的硬件来完成。如:将声音数据交给声卡,最后有音响输出来,将图像交给显卡最后有显示器输出……
但是还会有一部分数据会返回给内存,以供程序下面的语句继续使用。
我们都知道内存的容量有很大,如:4G,8G, 16G,有时候我们会打开很多的程序,所有的程序的数据都存放到我们的内存中,那么CPU是如何正确的读取我们的不同程序的数据并加以计算的哪?
2 内存的假设设计
为了让我们的CPU 可以很好的读取内存中的数据,内存必须做优化设计,于是给内存设定了集合设计,将我们的内存分成很多大小相同的方格(盒子),所有的数据将放入这些小盒子中,将不同的程序的数据放入到不同的小盒子中,这样就出现的模块化的内存,当我执行程序的一个命令时,CPU就会从相应的盒子读数据然后计算,由于我们硬件所能访问或计算的最小单位是字节,所以内存中的这样的一个小盒子的大小就给他规定一个字节。
3 地址和指针
一般我们声明一块内存空间的时候,会给他取一个名字,为的是我们在编写程序的时候方便使用空间中存放的值,但是CPU 读数据的时候会忽视这个名字,因为CPU无法理解这样的数据,CPU 只能执行0,1代码,那么CPU是如何知道从什么地方读取数据,又到什么地方地址数据的读取的那,所以必须对内存做2次设计,就是将内存中分成的很多小盒子下面标注一些顺序的序号,例如:从第一个盒子开始,标注1,2,3,4,5,6,7,……每一个数字
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
引用时也是默认是外部函数所以也省略extern
static作用:定义一个内部函数
使用:static返回类型函数名(参数列表)
不能被其他文件调用
一个项目中,本文件的外部函数名不能和其他文件的外部函数同名(error)
本文件中的内部函数(static)可以和其他文件的函数名同名的
c知识点总结
c知识点总结
C语言知识点总结
C语言是一种高级程序设计语言,广泛应用于系统编程、嵌入式开发、游戏开发等领域。下面是对C语言的一些重要知识点的总结。
1. 数据类型
C语言提供了基本数据类型,包括整型、浮点型、字符型等。还可以通过结构体和枚举类型来定义复合数据类型。
2. 变量和常量
在C语言中,可以使用变量来存储和操作数据。变量需要先声明,然后才能使用。常量是不可变的值,可以直接使用或定义为宏。
3. 运算符
C语言支持各种运算符,包括算术运算符、关系运算符、逻辑运算符、赋值运算符等。可以使用运算符进行数值计算和逻辑判断。
4. 条件语句
条件语句用于根据条件的真假执行不同的语句块。C语言提供了if语句、switch语句等多种条件语句的形式。
5. 循环语句
循环语句用于重复执行一段代码块。C语言提供了for循环、
while循环、do-while循环等多种循环语句的形式。
6. 数组
数组是一种线性数据结构,可以在内存中连续存储多个相同类型的数据。可以使用数组来存储和操作一组数据。
7. 函数
函数是一段具有特定功能的代码块。C语言中的函数包括函数
声明和函数定义两部分。函数可以接受参数和返回值。
8. 指针
指针是一个存储变量内存地址的变量。C语言中可以通过指针
来访问和修改内存中的数据,也可以通过指针来实现动态内存分配。
9. 结构体
结构体是一种用户自定义的复合数据类型,可以将多个不同类型的数据组合在一起。可以使用结构体来定义复杂的数据结构。
10. 文件操作
C语言提供了文件操作函数,可以实现对文件的读写操作。可
以打开文件、读取文件内容、写入文件内容等。
C语言指针精简知识点
C语言编程:指针
一、C程序中指针的作用
1、使程序简洁、紧凑、高效
2、有效地表示复杂的数据结构
3、动态分配内存
4、得到多余一个的函数返回值
二、内存以字节为单位。
C语言也是以字节为单位的,1字节(byte)=8位(bit)在C中,指针是内存单元的地址。
指针变量:在C中专门用来存放地址的变量
三、指针变量的一般形式:
<存储类型> <数据类型> * <指针变量名>;
例如:char *pName;
auto int *p
<数据类型>:指地址所对应目标(内容)的数据类型
四、指针的初始化
<存储类型> <数据类型> * <指针变量名>=<地址值> 例如:int a = 20;
int * p;
p = & a; 把a的地址给了指针p
printf("%p",p);
%p输出地址
整型数,32位,4个字节
五、指针的目标:
指针指向的内存区域中的数据
如果指针指向的内存区域是一个变量的内存空间,则这个变量称为指针的目标变量
例如;
int a = 10;
int *p;
p = &a;
10是指针p的目标,a是指针p的目标变量。
*p 直接找到p的目标
printf("%d\n",*p);
&p 取指针的地址
指针变量占用的存储区域的地址,是个常数
六、指针的赋值
向一个指针变量赋值时,送的值必须是地址常量或指针变量。
指针变量和指针的数据类型要保持一致。
例如:
double x = 15,*px;
px = &x;
七、指针变量之间是可以互相赋值的,前提是数据类型相同。例如;
考研c语言知识点总结
考研c语言知识点总结
在计算机科学与技术的学习中,C语言是非常重要的一门语言。它是一种中级语言,同时
也是一种通用结构化语言,具有高效的机器级操作能力。在计算机领域中,C语言广泛应
用于系统软件的开发,大型应用程序的编写以及各种编程环境的构建。
一、C语言基础知识点
1. 变量和数据类型
在C语言中,变量是程序中用于存储数据值的一种占位符。变量的类型决定了变量的存储
方式,以及该存储空间内可以存储的数据的类型。C语言中的数据类型包括整型、浮点型、字符型、指针和布尔型等。对于不同的数据类型,在内存中会分配不同长度的存储空间。
2. 运算符和表达式
C语言中的运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符等。对于不同
的运算符,它们具有不同的优先级以及结合性。表达式是由变量、常量、运算符和函数调
用等组成的。C语言中的表达式会被编译器解析,并生成相应的指令来执行表达式的计算。
3. 控制结构
C语言中的控制结构包括顺序结构、选择结构和循环结构。顺序结构是程序中的基本结构,程序中的语句按照它们出现的顺序依次执行。选择结构用于根据条件来确定程序执行的路径,包括if语句、switch语句等。循环结构用于重复执行一段程序代码,包括for循环、while循环和do...while循环等。
4. 函数
在C语言中,函数是一段可重复使用的代码块。函数能够接受参数,在函数体内对参数进
行处理,并返回一个值。C语言中还可以使用指针作为函数的参数,从而可以修改函数外
面的变量。函数的调用过程是根据栈结构来完成的,函数的递归调用是通过栈实现的。
c语言的知识点,难点
c语言的知识点,难点
C语言知识点和难点
C语言作为一门经典的编程语言,有着广泛的应用领域和深厚的底蕴。在学习和使用C语言的过程中,我们常常会遇到一些知识点和难点,下面就来介绍一些常见的问题和解决方法。
一、指针
指针是C语言的一个重要概念,也是初学者常常会遇到的难点之一。指针可以说是C语言的核心,它的灵活运用可以提高程序的效率和灵活性。但是指针也容易引发一些问题,如空指针、野指针等。为了避免这些问题的发生,我们需要养成良好的指针使用习惯,如在使用指针之前进行判空操作、指针赋值后及时释放等。
二、内存管理
C语言中没有自动垃圾回收机制,我们需要手动管理内存的分配和释放。这就需要我们对内存的分配和释放函数有一定的了解,如malloc、free等。同时,在使用动态内存分配时,还需要注意内存泄漏和内存溢出的问题,避免程序运行过程中出现不可预料的错误。
三、数组和字符串
数组和字符串是C语言中常用的数据结构,但也是初学者容易出错的地方。在使用数组和字符串时,需要注意数组越界、字符串结束符以及字符串长度等问题。尤其是在进行字符串处理时,要避免缓
冲区溢出和字符串拼接的问题,以免造成安全漏洞。
四、文件操作
C语言提供了丰富的文件操作函数,如打开文件、读写文件、关闭文件等。在进行文件操作时,需要注意文件打开失败、文件读写错误和文件关闭等问题。同时,在读写文件时,还需要注意文件指针的位置以及文件操作模式等,以免造成数据丢失或错误。
五、逻辑控制和循环
逻辑控制和循环是C语言程序的基础,也是初学者需要掌握的重点。在使用逻辑控制和循环语句时,需要注意条件判断的准确性和循环变量的更新等问题。同时,在编写循环时,还需要注意循环的退出条件和循环体的执行顺序,以免出现死循环或逻辑错误。
C语言指针知识点总结
C语⾔指针知识点总结
1.指针的使⽤和本质分析
(1)初学指针使⽤注意事项
1)指针⼀定要初始化,否则容易产⽣野指针(后⾯会详细说明);
2)指针只保存同类型变量的地址,不同类型指针也不要相互赋值;
3)只有当两个指针指向同⼀个数组中的元素时,才能进⾏指针间的运算和⽐较操作;
4)指针只能进⾏减法运算,结果为同⼀个数组中所指元素的下表差值。
(2)指针的本质分析
①指针是变量,指针*的意义:
1)在声明时,*号表⽰所声明的变量为指针。
例如:int n = 1; int* p = &n;
这⾥,变量p保存着n的地址,即p<—>&n,*p<—>n
2)在使⽤时,*号表⽰取指针所指向变量的地址值。
例如:int m = *p;
②如果⼀个函数需要改变实参的值,则需要使⽤指针作为函数参数(传址调⽤),如果函数的参数数据类型很复杂,可使⽤指针代替。
最常见的就是交换变量函数void swap(int* a, int* b)
③指针运算符*和操作运算符的优先级相同
例如:int m = *p++;
等价于:int m= *p; p++;
2.指针和数组
(1)指针、数组、数组名
如果存在⼀个数组 int m[3] = {1,2,3};
定义指针变量p,int *p = m(这⾥m的类型为int*,&a[0]==>int*)
这⾥,
其中,&m为数组的地址,m为数组0元素的地址,两者相等,但意义不同,例如:
m+1 = (unsigned int)m + sizeof(*m)
&m+1= (unsigned int)(&m) + sizeof(*&m)
c语言的知识点总结
c语言的知识点总结
C语言是一种广泛使用的编程语言,因其简洁易学和高效稳定的特点而得到广泛的应用。在学习C语言过程中,需要掌握一些基本知识点,下面将介绍这些知识点。
第一步:C语言数据类型
C语言中的数据类型包括基本数据类型和派生数据类型。基本数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double);而派生数据类型包括数组、结构体、共用体和指针等。在进行变量的定义时,需要先了解各种数据类型的特点,才能正确地声明和使用变量。
第二步:C语言运算符
C语言运算符分为算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。在编写程序时,需要了解和掌握各种运算符的优先级和使用方法,以确保程序的正确性和高效性。
第三步:C语言条件语句
C语言中的条件语句主要包括if语句、switch语句和三目运算符。if语句用于判断某个条件是否成立,从而执行不同的程序分支;switch语句用于在多个选项中选择一个选项执行程序;三目运算符则是一种简洁的条件语句,可用于简化代码结构。
第四步:C语言循环语句
循环语句是C语言中最常用的语句之一,主要包括while循环、do-while循环和for循环。在编写程序时,需要根据具体的应用场景选择不同的循环语句,以确保程序的正确性和高效性。
第五步:C语言函数
函数是C语言程序中的基本单元,可用于封装一段具有特定功能的代码,从而提高代码的复用性和可维护性。在编写函数时,需要定义函数名、输入参数和返回值等,以便在程序中正确地调用和使用这些函数。
第六步:C语言指针
计算机二级c语言知识点总结
计算机二级c语言知识点总结
计算机二级C语言知识点总结
一、C语言基础知识
1. 数据类型:C语言中的数据类型包括基本数据类型(int、float、char等)和自定义数据类型(结构体、枚举等)。
2. 变量与常量:变量是用于存储数据的内存空间,常量是不能被修改的值。
3. 运算符:C语言中的运算符包括算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
4. 控制语句:C语言中的控制语句包括条件语句(if-else语句)、循环语句(for循环、while循环等)和跳转语句(break语句、continue语句等)等。
5. 函数:C语言中的函数是一段完成特定任务的代码块,可以被多次调用和重复使用。
二、数组与指针
1. 数组:数组是一种用于存储相同类型数据的集合,可以通过下标访问数组中的元素。
2. 指针:指针是一个变量,存储的是内存地址。可以通过指针来访问和修改内存中的数据。
3. 指针与数组的关系:数组名可以看作是数组第一个元素的地址,可以通过指针来实现对数组的操作。
三、字符串处理
1. 字符串:字符串是由字符组成的一串数据,以'\0'结尾。
2. 字符串的输入输出:使用scanf函数进行字符串的输入,使用printf函数进行字符串的输出。
3. 字符串的操作:可以使用strcpy函数进行字符串的复制,使用strcat函数进行字符串的连接,使用strlen函数获取字符串的长度等。
四、文件操作
1. 文件的打开与关闭:使用fopen函数打开文件,使用fclose函数关闭文件。
C语言指针知识点总结
C语言指针知识点总结
指
针
★指针的重要性
表示一些复杂的数据结构快速传递数据
使函数返回一个以上的值能直接访问硬件能方便处理字符串
是理解面向对象语言中引用的基础总结:指针是C 语言的灵魂★指针的定义☆地址
内存单元的编号从零开始的非负整数范围:4G ☆指针
1.指针就是地址,地址就是指针
2.指针变量是存放地址的变量
3.指针和指针变量是两个不同的概念
4.叙述时通常把指针变量简称为指针,实际它们含义不一样
5.指针的本质就是一个操作受限的非负整数★指针的分类
☆基本类型指针(重要) #include int main(void) {
int *p; //p 是变量的名字,int*表示p 变量存放的是int 类型变量的地址 Int*p;不表示定义了一个名字叫做*p 的变量
Int*p;应该理解为:p 是变量名,p 变量的数据类型是int*类型
所谓int*类型,实际就是存放int 变量地址的类型int i=3; char ch=’A ’ p=&i //OK
1.p 保存了i 的地址,因此p 指向i
2.p 不是i ,i 也不是p ,修改p 的值不影响i 的值,修改i 的值也不影响p 的值
3.如果一个指针变量指向了某个普通变量,则*指针变量完全等同于普通变量例:若p 指向i ,则*p=i (*p 和i 可互相替换) p=&ch//error
//p=i; //error,因为类型不一致,p 只能存放int 类型变量的地址,不能存放int 类型变量 //P=55;//error,原因同上 return 0; } △附注: ?*的含义: 1.乘法
c语言程序设计谭浩强第五版知识点总结
c语言程序设计谭浩强第五版知识点总结
C语言程序设计是计算机专业中非常重要的一门课程,也是计算机编程的基础。谭浩强的《C语言程序设计》第五版是一本非常经典的教材,本文将对该书的知识点进行总结。
一、C语言基础知识
1. C语言的基本数据类型:整型、浮点型、字符型、布尔型等。
2. 变量和常量的定义和使用。
3. 运算符的种类和使用,包括算术运算符、关系运算符、逻辑运算符等。
4. 控制语句的使用,包括if语句、switch语句、while语句、for语句等。
5. 数组的定义和使用,包括一维数组和多维数组。
6. 指针的定义和使用,包括指针的基本操作、指针和数组的关系、指针和函数的关系等。
7. 结构体的定义和使用,包括结构体的基本操作、结构体数组、结构体指针等。
8. 文件的操作,包括文件的打开、读写、关闭等。
二、C语言高级知识
1. 动态内存分配,包括malloc函数、calloc函数、realloc函数等。
2. 函数的定义和使用,包括函数的参数传递、函数的返回值、递归函数等。
3. 预处理器的使用,包括宏定义、条件编译等。
4. 指针和数组的高级应用,包括指针数组、多级指针、指针和字符串的关系等。
5. 结构体和联合体的高级应用,包括结构体和指针的关系、结构体和位域的关系等。
6. 文件的高级操作,包括二进制文件的读写、文件的随机访问等。
三、C语言编程实践
1. 编写简单的程序,包括输入输出、运算、控制语句等。
2. 编写函数,包括函数的定义、调用、参数传递等。
3. 编写数组和指针相关的程序,包括数组的排序、指针的应用等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言指针知识点总结公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-
指
针
★指针的重要性
表示一些复杂的数据结构 快速传递数据
使函数返回一个以上的值 能直接访问硬件 能方便处理字符串
是理解面向对象语言中引用的基础 总结:指针是C 语言的灵魂 ★指针的定义 ☆地址
内存单元的编号 从零开始的非负整数 范围:4G ☆指针
1.指针就是地址,地址就是指针
2.指针变量是存放地址的变量
3.指针和指针变量是两个不同的概念
4.叙述时通常把指针变量简称为指针,实际它们含义不一样
5.指针的本质就是一个操作受限的非负整数 ★指针的分类
☆基本类型指针(重要)
Int f(int i,int j) {
return 100; // return 88;error }
Int main (void)
{ # include
{
*p=1; *q=2;
} Int main(void) {
#include
int main(void)
{
int *p; //p是变量的名字,int*表示p变量存放的是int类型变量的地址
Int*p;不表示定义了一个名字叫做*p的变量
Int*p;应该理解为:p是变量名,p变量的数据类型是int*类型
所谓int*类型,实际就是存放int变量地址的类型
int i=3;
char ch=’A’
p=&i; //OK
1.p保存了i的地址,因此p指向i
2.p不是i,i也不是p,修改p的值不影响i的值,修改i 的值也不影响p的值
3.如果一个指针变量指向了某个普通变量,则*指针变量完全等同于普通变量
例:若p指向i,则*p=i (*p和i 可互相替换)
p=&ch;//error
//p=i; //error,因为类型不一致,p只能存放int类型变量的地址,不能存放int类型变量
//P=55;//error,原因同上 return 0; }
△附注: *的含义: 1.乘法
2.定义指针变量
Int*p; //定义了一个名字叫做p 的变量,int*表示p 只能存放int 变量的地址 3.指针运算符
该运算符放在已经定义好的指针变量的前面 如果p 是一个已经定义好的指针变量 则*p 表示以p 的内容为地址的变量
如何通过被调函数修改主调函数普通变量的值
1.实参必须为该普通变量的地址 &...
2.形参必须为指针变量 *...
3.在被调函数中通过 *形参名=...... 的方式就可以修改主调函数相关变量的值
例子: 经典指针程序:互换数值
形参和实参是不同的变量,修改形参不会改变实参 #include
指针常见错误
#include
Int main(void)
{
Int i=5;
Int*p;
Int*q;
P=&i;
//*q=p;//error语法编译会出错
//*q=*p;//error
P=q;//q是垃圾值,q赋给p,p也是垃圾值
printf(“%d\n”,*q); //13行
/*q的空间是属于本程序的,所以本程序可以读写q 的内容,
但是如果q内部是垃圾值,则本程序不能读写*q的内容
因为此时*q所代表的内存单元的控制限权并没有分配给本程序
所以本程序运行到13行时就会立即出错*/
return 0;
}
☆指针和数组
△指针和一维数组 一维数组名
一维数组名是个指针常量
它存放的是一维数组第一个元素的地址 下标和指针的关系
如果p 是个指针变量,则p[i]永远等价于*(p+i) 确定一个一维数组需要几个参数
(如果一个函数要处理一个一维数组,则需要接收该数组的哪些信息)
需要两个参数:
数组第一个元素的地址 数组的长度 指针变量的运算 指针变量不能相加,不能相乘,不能相除 可以相减(仅当两个指针变量指向的是同一块连续空间中的不同存储空间)
一个指针变量到底占几个字节
预备知识: sizeof (数据类型) # include
{ int i ; int main(void) { int a[5]={1,2,3,4,5}; int b[6]={-1,-2,-3,4,5,-6}; 1 2 3 4 5
-1 -2 -3 4 5 -6
1 99 2
2 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 # include
void f(int * pArr,int len)
{ pArr[3]=88; //10行 }
int main(void)
{ int a[6]={1,2,3,4,5,6} printf(“%d\n ”,a[3]); //17行 #include
Void f(int*pArr,int len)
{ pArr[2]=10; //pArr[2]==*( pArr+2)==*(a
+2)==a[2] } Int main(void) # include
{ Int i; For(i=0;i