博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验11——指针的基础应用
阅读量:5036 次
发布时间:2019-06-12

本文共 974 字,大约阅读时间需要 3 分钟。

一.本次课学习到的知识点:

1.通过示例"冒泡排序"引入数组名作为函数参数,重点介绍指针、数组和地址之间的关系,通过例子说明了指针和数组可以实现相同的操作。

2.地址和指针是计算机中的两个重要概念。

3.要注意区分内存单元的内容的内存单元的地址。

4.在c语言中把这些专门用来存放变量地址的变量称为“指针变量”,简称为指针。

5.如果在程序中声明一个变量并使用地址作为该变量的值,那么这个变量就是指针变量。定义指针变量的一般形式为:类型名 *指针变量名;

6.指针声明符*在定义指针变量时被使用,说明被定义的那个变量是指针。

7.定义多个指针变量时,每一个指针变量前面都必须加上*。

二. 实验过程中遇到的问题及解决方法:

1.好多问题。。。问问同学

三. 实验心得体会及本章学习总结:

对指针有了一些了解,很难

四.几个问题的思考与回答:

1.两个相同类型的指针变量能不能相加?为什么?

答:不能相加。因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。

2.在使用scanf()函数时,输入参数列表需要使用取地址操作符&,但当参数为字符数组名时并没有使用,为什么?如果在字符数组名前加上取地址操作符&,会发生什么?

答:因为字符数组名的值是一个特殊的固定地址,可以看作是常量指针,因此不需要再使用取地址符来获取该数组的地址。如果在字符数组名str 前加上取地址操作符&,那么对其取地址&str 可以看做是这个数组的第一个元素的地址,由于数组地址和数组第一个元素的地址相同,所以&str 表示地址值和str 表示的地址值是相等的。对scanf()的变长参数列表的话,编译器只负责参数传递,怎么解释后边的几个地址的含义,是由前边的字符串确定的。所以使用scanf(“%s”,str)和scanf(“%s”,&str)都能通过编译且正常执行。

3.C语言不允许用赋值表达式直接对数组赋值,为什么?

答: 因为数组的数组名本质上来说相当于一个指向该数组的第一个元素的指针常量,不可以对一个常量进行赋值,所以不允许用赋值表达式直接对数组进行赋值。

转载于:https://www.cnblogs.com/liangjiajia/p/6145694.html

你可能感兴趣的文章
web前端java script学习2017.7.18
查看>>
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>
sublime复制当前行到下一行
查看>>
WPF 3D变换应用
查看>>