史上最牛逼的C++指针教学

合集下载

浅谈《C语言程序设计》中的“指针”教学

浅谈《C语言程序设计》中的“指针”教学

( 上 页) 且 也 可 能 带来 新 的干 扰 源 。但 软 件 滤 波 算 法 对 硬 件 设 备 要 接 并 求不高, 并且 可 靠 性 高 、 能 多、 用 灵 活 , 有很 多硬 件 滤 波 方 法 所 不 功 使 具 具备 的优点。所 以, 该项 目可 以增加在 软件上 的使用代替硬 件部分 , 在 以后的研 究中可 以进一步改进 。 参考文献 : 『 ] h oY,ioY B Dsr nt nm to s n e d ltnt h— 1 Z a La . i i ao e d ddmouai c c mi i h a o e nq e r brBaggai esr[ ] O t sadLsr i E g —ne- iusf e rg rt gsnos J . pi n ae n ni er of i n c s
F r n j ; 一i 0( ;>0 一 ){ P=( ik i ) ll (i o( N d ) ; Ln Ls mao s efL o e ) t c z Saf & cn( p一 >dt) a ; a
P一 >n x e t= L 一 > n x : e t
L一 >n x P: et




= = : =二 = =====:: :==== 扫 ——一 : = == 谈 《 C语言程序设计》 中的“ 指针 " 教学
肖吉聪 湖 南省 娄 底 工 贸 中专 4 70 100
I 摘 要】 讨在教 学中怎样加深对“ 探 指针 ” 的理解 , 及在教学 中如何使 学生能掌握“ 指针” 在程序设计 中的应用。 【 关键 词】 指针” ‘ ‘ 教学 地址 C语言程序设计 中图 分 类 号 : 7 文 献 标 识 码 : 文 章 编 号 :0 9—4 6 2 1 )4— 17— 1 G1 A 10 0 7(0 0 0 0 2 0 由于计算机在生活 中所起的重要作用及应 用范围 , 各大学校对计算 机 的有关课程的教学也高度重视起来 , 但计算机与其它专业 的教学相比, 有它 自身的特点 , 特别对 于计 算机语言方 面的教 学 , 既抽象又具体 , 既有 它的可扩展性又必须要有严密的逻辑思维能力。《 C语言程序设计 》 是继 Psa语言 、ai acl Bs c语言和 C bl o o语言之后 问世的一种通用计算机程序设计 语言, 它适用于编写各种系统 软件 , 也适 用于编写各种 应用软件 , 现在 C 语 言 发展 有 许 多 种 版 本 , : 语 言 、 如 c C+ +、ub T roC语 言 、 o ad c+ + B f n l B ie 等 , ul r c语言作为软件专 业的一 门教学语 言, 实存在许多优越 性, d 确 如数据类型 比较全 , 语法限制不严格 , 程序设计 自由度 大, 可移植性好 , 同 时兼有高级语言与汇编语言的功能 ; 在面 向对象的编程 中, C语言对培养 学生严密的逻辑思维能力 、 程习惯照样很重要 。对于从 事计算机语言 编 方教学的老师都知道, 指针类型的教学很重要 , 属于 C语言 的“ 高级 ” 编程 部分, 以说 , 可 指针类型掌握得好 与不好 , 基本上可说 明你 对这种语言掌 握得好不好 , 及对学习其它语言产生 比较深远的影响。在这里 , 我就本人 在对这种语言的教学中所遇到的问题谈几点看法 :

c语言 指针 教学案例

c语言 指针 教学案例

c语言指针教学案例教学目标:通过案例学习,掌握C语言指针的基本概念和用法。

教学重点:1. 了解指针的概念和作用;2. 掌握指针的声明和初始化;3. 学会通过指针访问变量的值;4. 掌握指针作为函数参数的使用。

教学准备:1. 一台已安装C语言编译器的计算机;2. 编辑器,用于编写C语言代码;3. 投影仪,用于展示代码。

教学步骤:1. 引入指针的概念:指针是C语言的一个重要概念,它是用来存储变量地址的变量。

通过指针,可以间接访问和修改变量的值。

本节课我们将通过案例学习来深入理解指针的用法。

2. 案例1:使用指针交换两个变量的值:```c#include <stdio.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int main() {int x = 10, y = 20;printf("交换前:x = %d, y = %d\n", x, y);swap(&x, &y);printf("交换后:x = %d, y = %d\n", x, y);return 0;}```这段代码定义了一个交换函数`swap`,它接受两个指针作为参数,通过指针交换两个变量的值。

在`main`函数中,我们用这个函数来交换变量`x`和`y`的值,并输出结果。

3. 案例2:使用指针实现函数与主函数的数据传递:```c#include <stdio.h>void modify(int *num) {*num = 100;}int main() {int x = 10;printf("修改前:x = %d\n", x);modify(&x);printf("修改后:x = %d\n", x);return 0;}```这段代码定义了一个修改函数`modify`,它接受一个指针作为参数,通过指针修改变量的值。

论C语言指针的启发式教学

论C语言指针的启发式教学

否 掌握 C语 言的一个 重要标 志 但是 . 由于指 针概 念抽 灌 ” 误 区 , 直 接导 致 学 生 以记 忆 、 习 为 主 的单 一 的 这 练 象、 种类 复杂 、 用灵 活 、 易出错 , 以对 初学 者来 说 学习方 法的产生 . 使 容 所 不利 于 学生全 面素质 的培养 较难 理解 和掌握 。因此 . C语 言 的教学 中 . 针 既是 在 指 如 果教 师在 ” 授 式 ” 传 教学 的基 础上 注 意 调动 学 生 重点 , 也是 难点 。 的学 习主动性 . 引人 ” 启发 式 ” 教学 . 精心 巧妙 地设 计 问
过程 中存 在的 问题 . 出在 C语 言指针 的课 堂教 学 中利 用 问题 启发 和 引导 学生 的思 维 . 立 多元化 的教 学 提 建
模式, 以进 一 步增 强教 学效果 , 高 学生理 解和 应 用指针 的能 力 , C 语 言指 针 的教 学具 有 一定 的借 鉴意 提 对
义。
【 关键词 】 C语 言 ; 针 ; : 指 启现 状分 析 、 C语 言 是 目前 大多 数 高校 理 工科 专业 学 生 高级 语 1 用 问题 启发思 维 , 立 多元化教 学模 式 、 建 从上述 分析 可 以看 出 . 目前 在 C语 言指 针 的教学

建 电

21 0 0年第 8期
论 C语 言指针 的启发式教 学
王必 晴
( 陵 学院 数 学与 计算机 科 学 系 安徽 铜陵 2 4 0 铜 4 0 0)
【 摘 要 】 指针是 c语 言教 学的重 点 , : 也是 教 学的难 点 。本 文从教 学 实践 出发 , 对 c语 言指针 教 学 针
有些 教 师为 了学 生能更 ” 易” 更 ” 松 ” 啃下 指 题 , 分利 用 比喻 和类 比 . 发他 们 积极 思 维 . 容 、 轻 地 充 启 把单 纯 针这 块 ” 硬骨头 ” 往往采取 ” 鸭式 ” , 填 的教学方 法 教 师 的传 授知识 变为开 拓学 生 的思维 . 挖掘学 生 的潜力 . 激

KM教学法在C语言指针教学中的应用

KM教学法在C语言指针教学中的应用

KM教学法在C语言指针教学中的应用摘要:本文针对大学生在C语言程序设计课程学习指针过程中存在的主要问题进行了总结和分析。

针对KM教学法在C语言指针教学中的应用进行了探讨,事实证明这种教学方法取得了较好的效果,存在一定的推广价值。

关键词:C语言KM教学法指针教学方法是教师为完成教学任务所采用的手段,对教学目的的实现具有重要意义。

在确定了教学目的,有了相应的教学内容之后,为了取得预期的教学效果,就必须采用适当的教学方法。

教学方法要与学生的认识规律相适应,要与训练指导思想和教学原则相适应。

因此,教育工作者在教学方法上作了大量的改革和创新,如问题教学法[1]、任务驱动法[2]、专题式教学、引导发现教学法、互动教学法、问答式教学法以及KM教学法[3][4]等。

其中,KM 教学法符合教学赖以存在和发展的认知机理,能够系统而有重点地组织教学内容,符合学习思维的逻辑认知过程,它贯穿于教学的主要环节,具有实用性和通用性。

1 C语言指针C语言因为其功能强大、使用灵活、可移植性好,几乎成为了高校大学生必修的一门课程,在大学生计算机知识体系中有着重要的基础性作用。

指针是C语言中非常重要的一种数据类型,也是C语言的一个重要特色,灵活掌握指针的用法是C语言使用能力的一个标志。

正确而灵活地运用它可以有效地表示复杂的数据结构,能动态地分配内存。

能直接处理内存地址等,可以使程序简洁、紧凑、高效。

这对软件设计十分必要。

但是指针概念比较复杂。

应用也比较灵活且容易出错,学习者较难掌握,是C语言教学的难点。

特别对于初学者来说,指针通常比较难理解。

而由指针错误引起的调试问题连富有经验的程序员都感到头痛。

然而,指针是大多数C 语言程序的重要组成部分,在C语言的高级编程中基本都涉及到指针的应用,而且在以后的许多C++程序中仍然受到重用。

2 KM教学法KM是指在“知识逻辑结构”(Knowledge Logic Structure)的总体架构下融入“思维导图”(Mind Mapping)进行微观演绎[4]。

如何在C#中使用指针

如何在C#中使用指针

如何在C#中使⽤指针⼀:背景1. 讲故事⾼级语⾔玩多了,可能很多⼈对指针或者汇编都淡忘了,本篇就和⼤家聊⼀聊指针,虽然C#中是不提倡使⽤的,但你能说指针在C#中不重要吗?你要知道FCL内库中⼤量的使⽤指针,如String,Encoding,FileStream等等数不胜数,如例代码:private unsafe static bool EqualsHelper(string strA, string strB){fixed (char* ptr = &strA.m_firstChar){fixed (char* ptr3 = &strB.m_firstChar){char* ptr2 = ptr;char* ptr4 = ptr3;while (num >= 12) {...}while (num > 0 && *(int*)ptr2 == *(int*)ptr4) {...}}}}public unsafe Mutex(bool initiallyOwned, string name, out bool createdNew, MutexSecurity mutexSecurity){byte* ptr = stackalloc byte[(int)checked(unchecked((ulong)(uint)securityDescriptorBinaryForm.Length))]}private unsafe int ReadFileNative(SafeFileHandle handle, byte[] bytes, out int hr){fixed (byte* ptr = bytes){num = ((!_isAsync) ? Win32Native.ReadFile(handle, ptr + offset, count, out numBytesRead, IntPtr.Zero) : Win32Native.ReadFile(handle, ptr + offset, count, IntPtr.Zero, overlapped)); }}对,你觉得的美好世界,其实都是别⼈帮你负重前⾏,退⼀步说,指针的理解和不理解,对你研究底层源码影响是不能忽视的,指针相对⽐较抽象,考的是你的空间想象能⼒,可能现存的不少程序员还是不太明⽩,因为你缺乏所见即所得的⼯具,希望这⼀篇能帮你少⾛些弯路。

c语言指针详细讲解

c语言指针详细讲解

c语言指针详细讲解
C 语言中指针是非常强大的概念,它允许程序直接访问内存中的数据。

指针在 C 语言中最初是被用于解决内存分配问题而提出的,随着 C 语言的发展,指针也变得愈发重要。

指针的本质是一个存储变量地址的变量。

在 C 语言中,指针通常用符号&来表示,例如&x 表示的是 x 变量的地址。

指针变量存储的是一个内存地址,当程序读取指针变量时,它会读取该地址中存储的数据。

C 语言中可以使用指针进行高效的内存操作。

例如,当程序需要对一个数组元素进行修改时,可以直接用指针修改该元素的值,而不必修改数组名本身。

另外,指针还可以用于动态分配内存,这是 C 语言中一个重要的特性。

指针的使用方法比较灵活,但也需要小心使用。

如果不小心处理指针,可能会导致未知的错误。

例如,当指针指向的内存空间被释放后,程序试图访问该内存空间时可能会导致未定义的行为。

因此,在C 语言中,指针的使用需要更加谨慎。

C 语言中指针是一个非常重要和强大的概念,掌握指针的使用方法可以让程序员写出更加高效和安全的代码。

C语言指针部分教学心得

C语言指针部分教学心得

C语言指针部分教学心得作者:杨英翔来源:《卷宗》2013年第11期摘要:C语言是国内外广泛使用的一种计算机语言,C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。

关键词:C语言;教学0 引言C语言是国内外广泛使用的一种计算机语言,C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。

因此,C语言不仅是计算机专业学生的一门重要课程,也是高校中非计算机专业学生学习计算机知识的一门重要课程。

作者的C语言课都是在机房里进行的,学生可以人手一机。

在C语言的教学过程中,精讲多练,讲练结合,依据学生的能力,采用以学生为主体逐步引导、启发学生。

即教师在课堂上起引导的作用,让学生在机学习,边学边练,不断发现问题,解决问题,循序渐进,逐步提高。

这种方法打破了课堂教学和实验教学的严格界线,在C语言的教学实践中取得了良好的效果。

1 指针用法指针通常指向一片存储空间,而空间可采用静态分配或动态分配。

静态分配是指在编写C 程序时已确定了存储空间。

如使用全局变量,static char a[size],则编译器为变量a在程序运行时的数据区内固定分配size字节的空间;如函数内定义一个局部变量charb[size],则在执行函数时,局部变量b在栈上分配size字节的存储空间,函数调用结束时将自动释放局部数组变量b的存储空间。

动态分配是指调用库函数malloc(size)在堆上分配size个字节的连续空间,调用结束后返回一个指向分配好的存储空间的指针,编程时必须考虑到在使用完该存储空间后调用对应的函数free()来释放掉。

在C编程时,一定要合理使用指针,否则很容易在执行时出现各种错误。

以下列出常见的几个错误:(1)在C程序中定义了一个指针变量,但没有对其进行初始化,将该指针变量称为“野指针”。

c语言 指针的指针 用法详解

c语言 指针的指针 用法详解

c语言指针的指针用法详解在C语言中,指针是非常重要的一种数据类型。

而指针的指针是指指向指针变量的指针。

它在C语言中也是非常重要的一种数据类型,经常用于动态内存分配和函数传递参数等方面。

下面,我们来详细介绍一下指针的指针在C语言中的用法。

一、指针的基本概念在C语言中,指针是一个变量,用来表示另一个变量的内存地址。

指针变量可以存储任何数据类型的地址,包括整型、字符型、浮点型等。

使用指针可以实现动态内存分配、函数传递参数等功能。

二、指针的指针的概念指针的指针是指指向指针变量的指针。

它的定义方式如下:```int **p;```其中,p是一个指向指针的指针变量,它可以指向一个指针变量的地址。

三、指针的指针的用法指针的指针在C语言中有很多用途,下面列举几个比较常见的用法。

1.动态内存分配在C语言中,可以使用malloc函数动态分配内存,该函数返回的是一个指向分配内存的首地址的指针。

而在一些情况下,需要动态分配二维数组或者指针数组,这时就需要使用指针的指针了。

例如:```int **p;int i,j;p=(int **)malloc(sizeof(int*)*3);//分配3个指向int类型指针的指针变量for(i=0;i<3;i++){p[i]=(int*)malloc(sizeof(int)*4);//分配4个int类型的变量}for(i=0;i<3;i++){for(j=0;j<4;j++){p[i][j]=i*j;//为p[i][j]赋值}}```上述代码中,先使用malloc函数分配3个指向int类型指针的变量,然后再用循环分别为这3个变量分配4个int类型的变量。

最后,再使用嵌套循环为二维数组赋值。

2.函数传递参数在C语言中,函数可以通过指针传递参数。

指针的指针也可以用于函数传递参数,可以使函数返回多个值。

例如:```void fun(int **p){*p=(int*)malloc(sizeof(int)*4);//为指针p分配4个int类型的变量(*p)[0]=10;(*p)[1]=20;(*p)[2]=30;(*p)[3]=40;}int main(){int *p;fun(&p);//传递p的地址printf("%d %d %d %d\n",p[0],p[1],p[2],p[3]);free(p);//释放内存return 0;}```上述代码中,定义了一个指针类型的函数fun,在函数中通过指针的指针为指针p分配4个int类型的变量,并为这4个变量赋值。

C指针详解(经典,非常详细)

C指针详解(经典,非常详细)

总结课:让你不再害怕指针指针所具有的四个要素:指针的类型,指针所指向的类型,指针指向的内存区,指针自身占据的内存。

0前言:复杂类型说明要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:int p;//这是一个普通的整型变量int*p;//首先从P处开始,先与*结合,所以说明P是一//个指针,然后再与int结合,说明指针所指向//的内容的类型为int型.所以P是一个返回整//型数据的指针int p[3];//首先从P处开始,先与[]结合,说明P是一个数//组,然后与int结合,说明数组里的元素是整//型的,所以P是一个由整型数据组成的数组int*p[3];//首先从P处开始,先与[]结合,因为其优先级//比*高,所以P是一个数组,然后再与*结合,说明//数组里的元素是指针类型,然后再与int结合,//说明指针所指向的内容的类型是整型的,所以//P是一个由返回整型数据的指针所组成的数组int(*p)[3];//首先从P处开始,先与*结合,说明P是一个指针//然后再与[]结合(与"()"这步可以忽略,只是为//了改变优先级),说明指针所指向的内容是一个//数组,然后再与int 结合,说明数组里的元素是//整型的.所以P 是一个指向由整型数据组成的数//组的指针int**p;//首先从P开始,先与*结合,说是P是一个指针,然//后再与*结合,说明指针所指向的元素是指针,然//后再与int 结合,说明该指针所指向的元素是整//型数据.由于二级指针以及更高级的指针极少用//在复杂的类型中,所以后面更复杂的类型我们就//不考虑多级指针了,最多只考虑一级指针.int p(int);//从P处起,先与()结合,说明P是一个函数,然后进入//()里分析,说明该函数有一个整型变量的参数//然后再与外面的int结合,说明函数的返回值是//一个整型数据int(*p)(int);//从P处开始,先与指针结合,说明P是一个指针,然后与//()结合,说明指针指向的是一个函数,然后再与()里的//int结合,说明函数有一个int型的参数,再与最外层的//int结合,说明函数的返回类型是整型,所以P是一个指//向有一个整型参数且返回类型为整型的函数的指针int*(*p(int))[3];//可以先跳过,不看这个类型,过于复杂//从P开始,先与()结合,说明P是一个函数,然后进//入()里面,与int结合,说明函数有一个整型变量//参数,然后再与外面的*结合,说明函数返回的是//一个指针,,然后到最外面一层,先与[]结合,说明//返回的指针指向的是一个数组,然后再与*结合,说//明数组里的元素是指针,然后再与int结合,说明指//针指向的内容是整型数据.所以P是一个参数为一个//整数据且返回一个指向由整型指针变量组成的数组//的指针变量的函数.说到这里也就差不多了,我们的任务也就这么多,理解了这几个类型,其它的类型对我们来说也是小菜了,不过我们一般不会用太复杂的类型,那样会大大减小程序的可读性,请慎用,这上面的几种类型已经足够我们用了.1、细说指针指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。

c语言指针教学中的知识点分析与总结

c语言指针教学中的知识点分析与总结

c语言指针教学中的知识点分析与总结c语言指针教学中的知识点分析与总结本文对c语言指针的教学进行了探讨和总结。

要想真正的掌握c 语言的指针,首先必须要对它有全面深刻的认识。

因为它是c语言的基础,只有将指针的知识学好,才能够更好地学习后续的课程。

下面小编给大家介绍一下关于c语言指针的知识。

一、 c语言中指针的定义指针是一种特殊的数据类型,也称为引用类型。

所谓指针就是指向一个地址的变量,例如: int a[10];二、变量指针及指针变量1.1 c语言中的变量。

变量是存储在计算机中的二进制数值,当我们需要使用时,必须创建一个变量并赋予它相应的值,然后将变量的地址传递给外部的一个或多个对象,这样外部对象通过访问内部变量来使用其中存储的信息,而且可以保证外部对象不会越界。

1.2指针变量是变量的一种特殊形式,指针变量在内存中占有一块区域,可以指向一个地址,这个地址的值是这个变量所代表的值,这样方便变量间的传递。

例如: char *a[10];2.1指针操作符2.2指针数组,它的作用和一维数组相同,即具有一维数组的特点,也具有二维数组的特点,三者最明显的区别就是二维数组中元素个数是固定的,而一维数组中元素个数是可变的。

2.3指针的运算规则。

在指针变量的操作中,要遵循以下运算规则:原地址→指针地址。

例如: char * a[10]; 2.4 c语言中的const指针常量是一种特殊的指针常量, const不是一种变量的标准类型,它专门用于指向一个const指针。

2.3指针的运算规则。

在指针变量的操作中,要遵循以下运算规则:原地址→指针地址。

例如: char *a[10];2.4指针的定义与使用:所谓指针就是指向一个地址的变量,例如: int a[10]; 2.4指针的定义与使用: pointer, pointer-pointer,and-and-and。

所以,当我们在一个字符串中出现pointer,pointer-pointer, and-and-and的时候,就表示它指向一个地址。

指针教学中的难点解析

指针教学中的难点解析
机 试 中 的 重 点 考 查 内容 。 过 我 们 的 教 学 实 践 和 对 等 级 考 试 通 的 总 结 , 生通 过 学 习 能够 较 好 掌 握 指 针 变 量 与 基 本 数 据 类 学
例 1有 如 下 说 明 语 句 ( 例 题 及 其 后 文 中 的程 序 均 在 本
T roC 2 1 统 下讨 论 ) u b . 系 0 : sai n 3 q { , , , , , , , , ,0 1 ,2 , j tt t [】 = 1 2 3 4 5 6 7 8 9 1 , 1 1 )i ; ci a [ , sai f a b牛 { _, ., . ,.} tt o t [ l 2 35 45; c l 5 5
下 面 , 们 应用 地址 级 别和地址 类型的概 念 , 结 合实 我 并
例 , 多 维 数 组 进 行 深 入 的讨 论 。 对
视 , 其 中指 针 是 C语 言 的精 华 部 分 和 难 点 部 分 , 学 好 c 而 是 语 言 的 关 键 ,也 是 学 生 期 末 考 试 和 计 算机 等 级 考 试 的 笔 试 、
为 n 为 叙 述 方便 , 将 之 记 为 s e f 识 符 ) n 由于 it , 则 i o( z 标 =。 n型
数 据 在 内存 中 占 2个 字 节 ( zoit 2, 以有 s ef)2 。 s e fn) )所 i ( = i o a 4 z (= b是 一 维 数 组 的 数 组 名 , “ 级 地 址 ”其 地 址 类 型 是 是 一 , l t ]。 f a4* 由于 f a 型 数 据 在 内存 中 占 4个 字节 ( zo(o t o[ l t o s ef a) i f - l
紧 密 关 联 , 指 针 教 学 中 的 难 点 。通 过 应 用 指 针 级 别 和 地 址 类 型 的 概 念 , 结 合 相 应 的 程 序 实 例 可 以 阐 明这 些 数 组 与 是 并

C语言中指针链表学习

C语言中指针链表学习

C语言中指针链表的学习探讨摘要:指针链表是一种最简单也是最常用的动态数据结构,它是对动态获得的内存进行组织的一种结构。

本文通过教学实践,通过图示法从基本概念的理解入手,并深入讲解动态链表的建立,插入和删除,在教学过程中起到了良好的效果。

关键词:动态;链表中图分类号:tp311.12c语言中存储数据的结构用的最普遍的是数组,包括简单类型的数组,指针数据和结构体数组等,但是他们在实际应用中,会因为实现定义过大的数组容量而造成内存的浪费,或者因为保守的预测分配而满足不了实际使用的要求,这时就需要另一种方法来解决这个问题,这就是动态数据结构和动态分配内存技术。

链表就是这样一种最简单的动态数据结构。

那么如何让学生能够很好的学习并掌握它,本人就近几年的教学过程中经过探讨,采用了图示法进行教学,效果很好。

1 基本概念的理解1.1 指针的理解(1)指针与简单变量。

通过图1所示理解指针与简单变量的关系,当把变量i的地址存入指针变量p1后,就可以说这个指针指向了该变量。

如需要指向下一个元素,只需要指针往后移动即可!1.2 结构体的理解(1)结构体类型。

结构体类型是一种专门组织和处理复杂关系的数据结构,是一种自定义类型。

同一个数据对象由于应用不同定义的类型也有所不同。

比如处理学生的信息,可以有很多种方式:结构体中的成员名可增,可减,形成新的结构体类型。

(2)结构体变量与数组。

以上是结构体类型的定义,变量定义方式有三种,这里不一一举例,可根据自己的个人习惯选择不同的定义方式。

比如上面两个类型,分别定义简单变量,可这样定义:struct student s1,s2; struct stu s3,s4;如定义数组,结合前面所学数组的知识,可这样定义:struct student s[10]; struct stu s1[20];2 指针链表掌握了前面指针和结构体的知识内容,对于指针链表的理解和掌握是非常重要的。

2.1 指针链表的定义这里主要讲解单项链表结点的结构体类型的定义,对于初学者掌握了这种定义,对于以后学习更为复杂的链表知识的理解是很有帮助的。

C语言指针用法详解

C语言指针用法详解

C语言指针用法详解C语言指针用法详解指针可以说是集C语言精华之所在,一个C语言达人怎么可以不会指针呢。

下面店铺给大家介绍C语言指针用法,欢迎阅读!C语言指针用法详解(1)关于指针与数组的存储a、指针和数组在内存中的存储形式数组p[N]创建时,对应着内存中一个数组空间的分配,其地址和容量在数组生命周期内一般不可改变。

数组名p本身是一个常量,即分配数组空间的地址值,这个值在编译时会替换成一个常数,在运行时没有任何内存空间来存储这个值,它和数组长度一起存在于代码中(应该是符号表中),在链接时已经制定好了;而指针*p创建时,对应内存中这个指针变量的空间分配,至于这个空间内填什么值即这个指针变量的值是多少,要看它在程序中被如何初始化,这也决定了指针指向哪一块内存地址。

b、指针和数组的赋值与初始化根据上文,一般情况下,数组的地址不能修改,内容可以修改;而指针的内容可以修改,指针指向的内容也可以修改,但这之前要为指针初始化。

如:int p[5];p=p+1; 是不允许的而p[0]=1; 是可以的;//int *p;p=p+1; 是允许的p[0]=1; 是不允许的,因为指针没有初始化;//int i;int *p=&i;p[0]=1; 是允许的;对于字符指针还有比较特殊的情况。

如:char * p="abc";p[0]='d'; 是不允许的为什么初始化了的字符指针不能改变其指向的内容呢?这是因为p 指向的是“常量”字符串,字符串"abc"实际是存储在程序的静态存储区的,因此内容不能改变。

这里常量字符串的地址确定在先,将指针指向其在后。

而char p[]="abc";p[0]='d'; 是允许的这是因为,这个初始化实际上是把常量直接赋值给数组,即写到为数组分配的内存空间。

这里数组内存分配在先,赋值在后。

(2)关于一些表达式的含义char *p, **p, ***p;char p[],p[][],p[][][];char *p[],*p[][],**p[],**p[][],*(*p)[],(**p)[],(**p)[][];能清晰地知道以上表达式的含义吗?(知道的去死!)第一组:char *p, **p, ***p;分别为char指针;char*指针,即指向char*类型数据地址的指针;char**指针,即指向char**类型数据的指针;他们都是占4字节空间的指针。

C语言指针教学的探讨

C语言指针教学的探讨
1 引 盲 .





2 分 析 -一 . -
l… l l

,。
p l 暑p;

在说 明这 个问题 时 . 所使用的例 子是 主程序输入两个待 在‘ 处理的数据 。 在函数中交换 数据 。 并在 主程 序中显示交换后 的结 果。先分析正确 的例子 : - . 程序 ( 》 11 . 。… . . : .
【 关键诃 】C语 言 ; : 指针 ; 内存地址
从 这 个 结 果 可 以 看 出 . 数代 码 调 用 后 。 没有 实 现 数 据 的 函 并 . 出现 了非 预期的运行结果 。 在 C语言 的指针学 习 中。 强调 的是 指针变量在使 用之前不 交换功能 也就是我们通常所说的 . 分 这 仅 要 先 进行 声 明 . 且 要 使 这 个 指 针 变 量指 向 确 定 的 内存 单 元 。 为 什 么 会 出 现 这 种 结 果 呢 ? 析 源 代 码 我 们 会 发 现 , 个 程 序 违 而 反 了上 面 总 结 的 第 三 条 . 作 为 中 间 变 量 的 P是一 个指 针 变 量 , 即 即 将 一 个地 址值 赋 给 这 个 变 量 。例 如 : 而 且 在 使 用 之 前 没有 将 一 个 地 址 值 赋 给 指 针 变 量 p ,也 就 是 在 l t ip , i *; na 没 有 使 指 针 指 向 一 个 确 定 的 内存 单 元 就 使 用 了 它 .从 而 不 能 正 & 。 、 ( , ̄ 。 但是. H , 果在使用 食指针变 量l 前 是进行 了声 明, l 直 之 只 1 没 常实现数据 的交换。 至于为什么这个结果是 a 9b 9 下面再分 有 将 一个 地 址 值 赋 给 这 个 指 l 也 就 是 这 个 指 针没 有 指 向 一 个 析 。) 据这个思路 。 钟 依 只要 在 函数 体再声 明一个变量 X 并 且使 P , 。 确定的 内存单元 。 会是什么结果 呢? 通常我们 说会产生一个不可 指 向 X 即 : 预期 的结果 。 而在这部分 内容 的教学 中 。 我们一般会给学生举出 程序( ) 3: 具 体 的程 序来 说 明如何 注意在 指针使 用过 程 中应该注 意的 细 sa( tp .n 2 w pn 1it 】 i p ’ ( il ; n p , : :. 。 节 _ 正 确 的使 用究 竟 会 有 哪些 可 能韵 情 况 出现 呢? 但不 本文 就 通 itx n ; 过这些反例 . 明不规范使用指针给程序设计带来 的麻 烦 。 来说 p &x = ;

C语言指针-教学设计

C语言指针-教学设计

C语言指针教学设计1.关于C语言程序设计中的指针C语言程序设计是高校理工科专业的一门重要专业或公共基础课,不仅是计算机相关专业学生进一步学习汇编语言程序设计、数据结构计算机操作系统、硬件编程等课程的入门级课程,同时也是非计算机专业学生了解计算机软硬件基础知识和计算机底层原理的重要手段之一.在教学内容的组织上,强调和分析指针与基本数据类型、函数、数组的内在联系,灵活设计教学程序实例,为学习者掌握指针及c语言程序设计创造良好条件。

指针是C语言的教学重点,程序使用指针可以带来很多方便,如:1)灵活操作数组(含字符串);2)动态分配内存;3)表示复杂的数据结构;是让程序更加简洁高效的重要手段。

然而指针也是C语言学习的最大难点,学习者普遍感觉指针概念抽象,致使无法正确理解并使用指针,而指针的使用稍有不慎,往往会给c语言程序带来致命的错误。

2。

学生分析在讲指针内容之前,学习者经历了基本数据类型、运算符和表达式、输入输出函数、选择制语句、循环控制语句、函数、数组等内容的学习。

而指针内容之后,一般还要讲授指针与字符串、指针与数组、结构体与共用体、文件操作等内容.其中指针起到了承前启后的作用,学习并掌握指针,对学习者获得程序设计技巧和能力、继续学习其它计算机专业课程至关重要.3.教师自我思考在课堂教学中起主导作用的教师,应根据指针教学所必需的基础知识,在授课过程中不断调各关键知识点的重要性,尽可能在指针内容的学习之前,使学习者具备理解指针概念的基础知识和基本能力。

在教学内容的组织上,强调和分析指针与基本数据类型、函数、数组的内在联系,灵活设计教学程序实例,为学习者掌握指针及c语言程序设计创造良好条件。

4.学生学习方法建议学习本章内容时,应重点掌握指针与指针的区别、指针的引用方法和运算,并在此基础上进一步理解指针作为函数参数和在数组当中的的应用,要求多读程序,理解编程的算法、编程的思路,并仿照例题多编程序、上机练习,真正掌握指针的灵活应用。

C语言指针教学中若干问题的探讨

C语言指针教学中若干问题的探讨


收稿日期 20 0 8-0 8-19
� � 作者简介 尚晓 丽 � ( 1980 ), 女, 黑龙 江齐齐 哈尔 人 , 绥 化学 院计 算机 科学 与技 术系 助教
18 8
现 在如有 语句 = * � = * � 则 中的 值为 2 2 � 中 的值为 指针 � 在表达式 +1 中 � 数值 1 的单位应该是 4 *2 个字节 � 而 � 4 4 � 若有语句 = - � �� 则 中的值为 2 . � � 不是 2 个字节 � 赋值语句 = � 是不合法的 � 因为 和 的基类 在对指针进行加减 运算中 � 数字 "1 "不� 再代表十进制整数 型不同 � 同样 � 对于二维数组名 � 也不可以进行 ++ � = + 等 � � � � "1 "� 而是指 � � � � 1 个存储单 � � � � � 元的长度 � � � � � 至 � 于 1 个 长度占多 少存储 运算 � 但是 = 0 � 或 = & 0 0 � ++; = + �等都是合法的 � � 空间� 则视指针的基类型而定 � � � � � � � � � 如果 和 的基类型是 �则 若 0 � < 3 �0� < 4 �则 的地址可用以下表达式表示 � 位移� 个存储单元长度就是位移 ( 若基类型是字符 ( 1 )& (2 ) + ( 3 ) *( + )+ (4 )& 0 0 +4 * + (5 ) � 1 � � � � � � � � � � � � � 2 个字节 � � � � � � � � � � 型 � � �则位移 1 个存储单元长度就 是位移 1 个字节 � 其它依此类 0+ 4 * + 推 )� 若有 = & � ; � � � = +� ; � 则 � � � 的值为 � � � & + �增 � 表示指针向 � � 在以 上表 达式 中 �& 0 0 � 0 的 基类 型都 是 类 个存储单元 � 减 表示向低地址方向移动 的指针只能用来 型 � 系统将自动据此来确定表达式中 常量 1 的单位是 2 个字 的基类型是 4 个整型元素的数组类型 � 系统将自动据此 来确 定常量 1 的单位是 8 个字节 � 高地址方向移动

c指针的用法

c指针的用法

c指针的用法C语言是一种强大的编程语言,而指针则是其中最重要的概念之一。

指针是一个特殊的数据类型,它存储了内存地址,使得程序员能够访问和操作这些数据。

本文将介绍C指针的各种用法,旨在帮助读者更好地理解这个重要的概念。

1. 基本概念指针是一个变量,在内存中存储一个地址值。

这个地址值指向的内存区域可以存储数据。

指针变量可以指向整数、字符、浮点数、数组或函数等不同类型的数据。

从语法上讲,每个指针变量都具有类型,即存储在该地址中的数据的类型。

例如,以下代码声明了一个整数指针变量:int *p;在这个例子中,*p表示指针变量,并且该变量存储了一个整数值的地址。

变量p的类型为int *,这意味着它可以指向存储整数值的内存区域。

2. 使用指针访问变量指针变量可以用来访问其他变量的值。

为此,我们使用取地址运算符&来获取变量的地址。

例如:int a = 10;int *p = &a;在这个例子中,变量a先声明并初始化了一个整数值。

接下来,将&a赋给了指针变量p,这意味着p包含了变量a的地址。

现在,可以使用*p访问变量a的值,如下所示:printf("%d\n", *p);输出结果为10。

3. 指针运算指针可以进行不同种类的运算。

其中一个常见的运算是指针加法。

例如,以下代码演示了如何使用指针遍历一个数组:int a[] = {1, 2, 3, 4, 5};int *p = &a[0];for(int i=0; i<5; i++) {printf("%d ", *p);p++;}在这个例子中,定义了一个整数数组a,并将指针变量p设置为a的第一个元素的地址。

接下来,使用循环来遍历整个数组,并使用指针变量p打印出每个元素的值。

在每次迭代中,将指针p递增,以便指向下一个元素的地址。

这个输出结果为1 2 3 4 5。

4. 指针和字符串在C语言中,字符串是一个字符数组。

C语言程序设计——指针(完整版)PPT教学课件

C语言程序设计——指针(完整版)PPT教学课件

说明:
(1)设有指向整型变量的指针变量p,若要把整型变量a 的地址赋予p,有以下方式: 指针变量初始化的方法: int a; int *p=&a; 赋值语句的方法: int a,*p; p=&a; (2)指针运算符*和指针变量说明中的指针说明符*不是 一回事。后者表示其后的变量是指针类型,前者则是一 个运算符用以表示指针变量所指的变量。
三、 指针变量作函数参数 C语言是通过传值将参数传递给函数的,对被调函数来说, 没有直接的方法来改变主调函数内的变量的值。 例:对两个整数按大小顺序输出。 #include<stdio.h> swap(int x,int y) {int t; t=x; x=y; y=t; } void main( ) {int a=3,b=5; if(a<b) swap(a,b); printf(“a=%d,b=%d \n”,a,b); }
说明:
(1)指针变量名的构成原则是标识符,前面必须有 “*”, 表示该变量的类型是指针型变量。 (2)在一个定义语句中,可以同时定义普通变量、数组、 指针变量。 (3)类型说明符说明的数据类型不是指针变量中存放的 数据的数据类型,而是它将要指向的变量或数组的数据 类型。因此,一个指针变量只能用来指向同种数据类型 的其他变量或数组,不能时而指向一个浮点型变量,时 而指向一个整型变量。
说明:
(3)如果已执行了语句p=&a; ,则: &*p:先进行*p的运算,即是变量a,再执行&运算, 即变量a的地址。因此&*p与&a相同。 *&a:先进行&a的运算,即得a的地址,再执行*运 算, 即&a所指向的变量,即变量a。 因此*&a与a相同。

C语言中有关指针内容讲课思路的探讨

C语言中有关指针内容讲课思路的探讨

C语言中有关指针内容讲课思路的探讨
罗胜荣;黎利红
【期刊名称】《九江职业技术学院学报》
【年(卷),期】2009(000)004
【摘要】指针是C语言的一个重要的概念,也是比较难掌握的一个概念.如何讲解这一部分内容,讲解的思路、内容的选择、具体讲解方法等都要认真探讨.
【总页数】2页(P40-41)
【作者】罗胜荣;黎利红
【作者单位】九江职业技术学院,江西九江,332007;九江职业技术学院,江西九江,332007
【正文语种】中文
【中图分类】G642.41
【相关文献】
1.C语言指针教学中若干问题的探讨 [J], 尚晓丽
2.C语言教学中“指针教学方法”探讨 [J], 金龙海
3.C语言课程中指针内容体系设置的改革尝试 [J], 于福生;刘玉铭;王加银
4.C语言中指针变量的双重信息在指针教学中的作用 [J], 菅典兵
5.C语言中指针变量的双重信息在指针教学中的作用 [J], 菅典兵
因版权原因,仅展示原文概要,查看原文内容请购买。

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

要了解指针,多多少少会出现一些比较复杂的类型,其实要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,其原则:从变量名处起,根据运算符优先级结合,一步一步分析。

皻int p;///这是一个普通的整型变量int*p;///首先从P处开始,先与*结合,所以说明P是一个指针,然后再与int结合,说明指针所指向的内容的类型为int型.所以P是一个返回整型数据的指针int p[3];///首先从P处开始,先与[]结合,说明P是一个数组,然后与int结合,说明数组里的元素是整型的,所以P是一个由整型数据组成的数组int*p[3];///首先从P处开始,先与[]结合,因为其优先级比*高,所以P 是一个数组,然后再与*结合,说明数组里的元素是指针类型,然后再与int结合,说明指针所指向的内容的类型是整型的,所以P是一个由返回整型数据的指针所组成的数组int(*p)[3];///首先从P处开始,先与*结合,说明P是一个指针然后再与[]结合(与"()"这步可以忽略,只是为了改变优先级),说明指针所指向的内容是一个数组,然后再与int结合,说明数组里的元素是整型的.所以P是一个指向由整型数据组成的数组的指针int**p;///首先从P开始,先与*结合,说是P是一个指针,然后再与*结合,说明指针所指向的元素是指针,然后再与int结合,说明该指针所指向的元素是整型数据.由于二级指针以及更高级的指针极少用在复杂的类型中,所以后面更复杂的类型我们就不考虑多级指针了,最多只考虑一级指针.int p(int);///从P处起,先与()结合,说明P是一个函数,然后进入()里分析,说明该函数有一个整型变量的参数然后再与外面的int结合,说明函数的返回值是一个整型数据Int(*p)(int);///从P处开始,先与指针结合,说明P是一个指针,然后与()结合,说明指针指向的是一个函数,然后再与()里的int结合,说明函数有一个int型的参数,再与最外层的int结合,说明函数的返回类型是整型,所以P是一个指向有一个整型参数且返回类型为整型的函数的指针int*(*p(int))[3];///从P开始,先与()结合,说明P是一个函数,然后进入()里面,与int结合,说明函数有一个整型变量参数,然后再与外面的*结合,说明函数返回的是一个指针,,然后到最外面一层,先与[]结合,说明返回的指针指向的是一个数组,然后再与*结合,说明数组里的元素是指针,然后再与int结合,说明指针指向的内容是整型数据.所以P是一个参数为一个整数据且返回一个指向由整型指针变量组成的数组的指针变量的函数.1、细说指针指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。

要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。

先声明几个指针放着做例子:例一:(1)int*ptr;(2)char*ptr;(3)int**ptr;(4)int(*ptr)[3];(5)int*(*ptr)[4];1.指针的类型从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。

这是指针本身所具有的类型。

让我们看看例一中各个指针的类型:(1)int*ptr;///指针的类型是int*(2)char*ptr;///指针的类型是char*(3)int**ptr;///指针的类型是int**(4)int(*ptr)[3];///指针的类型是int(*)[3](5)int*(*ptr)[4];///指针的类型是int*(*)[4]2.指针所指向的类型当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。

从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。

例如:(1)int*ptr;///指针所指向的类型是int(2)char*ptr;///指针所指向的的类型是char(3)int**ptr;///指针所指向的的类型是int*(4)int(*ptr)[3];///指针所指向的的类型是int()[3](5)int*(*ptr)[4];///指针所指向的的类型是int*()[4]在指针的算术运算中,指针所指向的类型有很大的作用。

指针的类型(即指针本身的类型)和指针所指向的类型是两个概念。

当你对C越来越熟悉时,你会发现,把与指针搅和在一起的"类型"这个概念分成"指针的类型"和"指针所指向的类型"两个概念,是精通指针的关键点之一。

我看了不少书,发现有些写得差的书中,就把指针的这两个概念搅在一起了,所以看起书来前后矛盾,越看越糊涂。

3.指针的值----或者叫指针所指向的内存区或地址指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。

在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址全都是32位长。

指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为si zeof(指针所指向的类型)的一片内存区。

以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。

指针所指向的内存区和指针所指向的类型是两个完全不同的概念。

在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。

以后,每遇到一个指针,都应该问问:这个指针的类型是什么?指针指的类型是什么?该指针指向了哪里?(重点注意)4指针本身所占据的内存区指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就知道了。

在32位平台里,指针本身占据了4个字节的长度。

指针本身占据的内存这个概念在判断一个指针表达式(后面会解释)是否是左值时很有用。

2、指针的算术运算指针可以加上或减去一个整数。

指针的这种运算的意义和通常的数值的加减运算的意义是不一样的,以单元为单位。

例如:例二:char a[20];int*ptr=(int*)a;///强制类型转换并不会改变a的类型ptr++;在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整型变量a。

接下来的第3句中,指针ptr被加了1,编译器是这样处理的:它把指针ptr的值加上了sizeof(int),在32位程序中,是被加上了4,因为在32位程序中,int占4个字节。

由于地址是用字节做单位的,故ptr所指向的地址由原来的变量a的地址向高地址方向增加了4个字节。

由于char类型的长度是一个字节,所以,原来ptr是指向数组a的第0号单元开始的四个字节,此时指向了数组a中从第4号单元开始的四个字节。

我们可以用一个指针和一个循环来遍历一个数组,看例子:例三:int array[20]={0};int*ptr=array;for(i=0;i<20;i++){(*ptr)++;ptr++;}这个例子将整型数组中各个单元的值加1。

由于每次循环都将指针ptr 加1个单元,所以每次循环都能访问数组的下一个单元。

再看例子:例四:char a[20]="You_are_a_girl";int*ptr=(int*)a;ptr+=5;在这个例子中,ptr被加上了5,编译器是这样处理的:将指针ptr的值加上5乘sizeof(int),在32位程序中就是加上了5乘4=20。

由于地址的单位是字节,故现在的ptr所指向的地址比起加5后的ptr所指向的地址来说,向高地址方向移动了20个字节。

在这个例子中,没加5前的ptr指向数组a的第0号单元开始的四个字节,加5后,ptr已经指向了数组a的合法范围之外了。

虽然这种情况在应用上会出问题,但在语法上却是可以的。

这也体现出了指针的灵活性。

如果上例中,ptr是被减去5,那么处理过程大同小异,只不过ptr的值是被减去5乘sizeof(int),新的ptr指向的地址将比原来的ptr所指向的地址向低地址方向移动了20个字节。

下面请允许我再举一个例子:(一个误区)例五:#include<stdio.h>int main(){char a[20]="You_are_a_girl";char*p=a;char**ptr=&p;///printf("p=%d\n",p);///printf("ptr=%d\n",ptr);///printf("*ptr=%d\n",*ptr);printf("**ptr=%c\n",**ptr);ptr++;///printf("ptr=%d\n",ptr);///printf("*ptr=%d\n",*ptr);printf("**ptr=%c\n",**ptr);}误区一、输出答案为Y和o误解:ptr是一个char的二级指针,当执行ptr++;时,会使指针加一个sizeof(char),所以输出如上结果,这个可能只是少部分人的结果.误区二、输出答案为Y和a误解:ptr指向的是一个char*类型,当执行ptr++;时,会使指针加一个sizeof(char*)(有可能会有人认为这个值为1,那就会得到误区一的答案,这个值应该是4,参考前面内容),即&p+4;那进行一次取值运算不就指向数组中的第五个元素了吗?那输出的结果不就是数组中第五个元素了吗?答案是否定的.正解:ptr的类型是char**,指向的类型是一个char*类型,该指向的地址就是p的地址(&p),当执行ptr++;时,会使指针加一个sizeof(char*),即&p+4;那*(&p+4)指向哪呢,这个你去问上帝吧,或者他会告诉你在哪?所以最后的输出会是一个随机的值,或许是一个非法操作.总结一下:一个指针ptrold加(减)一个整数n后,结果是一个新的指针ptrnew,ptrnew的类型和ptrold的类型相同,ptrnew所指向的类型和ptrold所指向的类型也相同。

ptrnew的值将比ptrold的值增加(减少)了n乘sizeof(ptrold所指向的类型)个字节。

就是说,ptrnew所指向的内存区将比ptrold所指向的内存区向高(低)地址方向移动了n乘sizeof(ptrold所指向的类型)个字节。

相关文档
最新文档