C语言程序设计中指针教学要点分析

徐 兵

( 广东海洋大学信息学院, 广东 湛江 524088)

1 指针知识单元构成

1.1 指针定义

在计算机内存中, 每一个存储单元(通常为 1

字节 )都有一个固定的编号, 就像酒店中的房间号

码一样, 这个编号就称为地址, 如图 1 所示。变量

P 和 x的地址分别是 3610 和 2000, 相当于房间

号。在地址所标识的内存单元中存放数据, 如在变

量 x的单元中存放一个数 9, 这就相当于酒店中各

个房间里居住的旅客一样。

&x为变量 x的地址,*p 为指针变量 p 所指向的存储

单元。应该注意的是在定义时 * 只起说明作用, 不

是运算符。

比如下面的语句中:float x= 1.5; float

*P= &x; float *P= x; 根据指针的定义很显然第 2 条语句是正确的。迷

惑的原因就在把 * 当成了运算符。其实, 这里的

float * 共同来修饰 P, 定义一个指向浮点型的指

针变量, 同时要将一个指针 &x赋值给 P。1.3 指针与数组

1.3.1 指针与数组区别。在 C语言中数组与指

针的关系非常密切, 但它们还是有着本质上的区

别。指针可以随时指向任意类型的内存单元, 它的

特征是可变。所以我们常用指针来操作动态内存。

当数组作为函数的参数进行传递时, 该数组自动

退化为同类型的指针。例如:char x []="china";

char *p="china"; 上述两个变量的内存布局情况

是:数组 x需要在内存中占用 6 个字节的空间。这

段内存区通过数组名 x来标志。指针 P 则需要 4

个字节的空间来存放地址, 这 4 个字节用 P 来标

志。其中存放的地址几乎可以指向任何地方,也可

以哪里都不指。目前这个 P 指向某地连续的 6 个

字节即字符串"china"。在教学过程中应该注意使

学生能够正确认识数组与指针的区别, 并正确运

用它们。

1.3.2 数组指针。数组指针的实质是指针, 其

定义为:int (*p)[n]; 表示 P 为指向由 n 个元素组成

的一维数组的指针变量。

c语言程序设计指针教学,C语言程序设计中指针教学要点分析相关推荐

  1. 职业教育计算机教学,关于职业教育中计算机教学的思考

    计算机教学 关于职业教育中计算机教学的思考 文/王清强 摘要:随着中职教育的不断普及,计算机技能的提高,对适应社会的发展有十分重要的作用.然而,窥探计算机教育现状却令人堪忧,由此引发了改善计算机教学现 ...

  2. java定义一个指针类型变量赋值吗,C++中指针的数据类型和运算相关知识小结

    C++有关指针的数据类型和指针运算的小结 前面已用过一些指针运算(如p++,p+i等),现在把全部的指针运算列出如下. 1) 指针变量加/减 一个整数 例如:p++,p--,p+i,p-i,p+-i, ...

  3. 计算机基础知识 教学目的,计算机基础中的教学目的怎么写

    一般来说,大学生的综合素质是指其所具有的学习能力.适应能力.交往能力.表达能力.解决问题能力以及组织管理能力等,既涉及专业素质,也涉及非专业的人文素质等.对于大学的教育目标,联合国教科文组织国际21世 ...

  4. 二维数组(解引用、指针数组、数组的指针)——C语言

    二维数组 在说二维数组前先来说下一维数组中的指针数组和和数组的指针 一.一维数组中指针数组和数组指针的区别 指针数组: 1 int *p[5]; []的优先级比*高,首先它是一个数组,它的大小是5,它 ...

  5. 基于pbl的c语言课程设计,基于PBL的程序设计语言教学案例设计

    ([1]吉林大学公共计算机教学与研究中心 吉林・长春 130012;[2]吉林大学计算机科学与技术学院 吉林・长春 130012) 摘 要 针对学生学习计算机程序设计语言的困难,以提高学生的实际编程能 ...

  6. c语言程序设计实验教学,C语言程序设计实验教学改革研究

    语言程序设计是目前各高校计算机及其相关专业的一门基础课程,也是其它工科专业学生必修的计算机基础课程之一,是学生学习程序设计的入门课程.同时,该课程是一门应用性很强的学科.随着计算机技术飞速发展,计算机 ...

  7. c语言程序设计的反思,C语言程序设计教学反思.doc

    <C语言程序设计>学科教学反思 本学期担当高一计算机网络专业C语言学科的教学任务.面对刚从初中毕业,对专业课还有些懵懂的学生,如何将枯燥的程序设计这门学科让学生更容易接受,如何将理论性强的 ...

  8. 何钦铭c语言程序设计第八章,c语言程序设计(第3版)何钦铭-颜-晖-第8章--指针

    1.第8章 指针[练习8-1]如果有定义"int m, n = 5, *p = &m;"与m = n等价的语句是 B .A m = *p; B. *p = *&n; ...

  9. c语言周林答案,C语言程序设计实训教程教学课件作者周林ch04结构化程序设计课件.ppt...

    C语言程序设计实训教程教学课件作者周林ch04结构化程序设计课件.ppt * * 4.1 选择结构程序设计 4.2 循环结构程序设计 4.3 辅助控制语句 第四章 结构化程序设计 4.1 选择结构程序 ...

最新文章

  1. NUMBER_GET_NEXT 获取编号年度问题
  2. CTF-杂项之工具使用汇总(一)
  3. oracle元数据存储在表空间,oracle db中数据和元数据的概念
  4. 第三次学JAVA再学不好就吃翔(part15)--基础语法之控制跳转语句
  5. 比较两个时间的大小 举例:CompareDate(12:00,11:15)
  6. 软件技术文档编写_如何编写好的软件技术文档
  7. 基于matlab深度学习的水果图像识别算法
  8. 基础算法(三)---二分排序(Java)
  9. python爬虫淘宝评论图片_淘宝上的图片是怎么被爬取的
  10. 2016word多级列表 一级标题居中后偏左
  11. 仿微信语音输入页面(讯飞语音)
  12. 平面设计文字排版方式有哪些?设计师们收藏——黎乙丙
  13. 使命召唤手游显示服务器停服,使命召唤手游停服了吗 是手游还是端游
  14. 【Windows】关于Windows Powershell找不到打不开修复方法
  15. 海湾crt调试_海湾设备调试步骤
  16. python爬虫爬取漫画(仅供学习)
  17. 红宝书初步研读随手笔记
  18. elastica php yii,Yii 1.1.*集成elasticsearch php 客户端Elastica
  19. 软考高级系统架构设计师论文系列三:论改进Web服务器性能的有关技术
  20. 经典励志文章:一碗阳春面

热门文章

  1. AD数据库的备份与还原
  2. linq学习笔记(1):c#3.0新特性(2)
  3. Windows JDK开发环境搭建及环境变量配置
  4. Tree树 递归查询,显示成JSON格式
  5. [20170825]不启动监听远程能连接数据库吗2
  6. 松下年净利润预计降20% 或启动新一轮裁员
  7. PATH和CLASSPATH
  8. excel 表生成insert语句。
  9. Quartz调用大全
  10. 基于keepalived实现haproxy高可用的双主模型配置