zoukankan      html  css  js  c++  java
  • 实验11——指针的基础应用

    1.本次课学到的知识点:

    (1)指针是c语言中非常重要的概念,使用指针可以对复杂数据进行处理,能对计算机的内存分配进行控制,在函数调用中使用指针还可以返回多个值。

    (2)指针访问内存和操纵地址,是通过变量的地址进行操控。

    (3)指针变量:变量p是用来存放地址的变量,实现对变量的间接操作。

    (4)指针变量定义:

    类型名  *指针变量名;

    类型名指定指针变量所指向的变量的类型,必须是有效数据类型:int,float,char等。

    (5)定义多个指针变量时,每一个指针变量前都必须加*。

    不同类型指针变量所占的内存空间大小相同。

    (6)指针的基本运算:

    1,取地址运算和间接访问运算:单目运算符&用于给出变量的地址。

    2,赋值运算:指针被定义并赋值后,就可以如同其他类型变量一样进行赋值变量。

    (7)冒泡排序:每一次循环都将当前最大元素“冒泡”到合适位置。

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

    (1)对指针还不太理解,做2,3,4题时有些茫然。

    (2)看书反复理解,和117同学讨论,学习了第3第4道题,第2题还有待解决.

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

    开始学指针,一下子感觉到难度上升了,尤其指针和地址的概念比较抽象,不太能理解,概念和程序的架构还不太清楚。

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

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

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

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

    因为字符数组名的值是一个特殊的固定地址,可以看作是常量指针,因此不需要再使用 取地址符来获取该数组的地址。

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

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

    数组名可以看作是常量指针,因为不可以对一个常量进行赋值,所以不允许用赋值表达式直接对数组进行赋值。

  • 相关阅读:
    UVA 1386
    疯狂Android演讲2 环境配置
    七内部排序算法汇总(插入排序、Shell排序、冒泡排序、请选择类别、、高速分拣合并排序、堆排序)
    【iOS发展-44】通过案例谈iOS重构:合并、格式化输出、宏观变量、使用数组来存储数据字典,而且使用plist最终的知识
    jQuery选择
    一个月操作总结
    C++易vector
    oracle rac 在完成安装错误。
    NginX issues HTTP 499 error after 60 seconds despite config. (PHP and AWS)
    解决Eclipse中文乱码的方法
  • 原文地址:https://www.cnblogs.com/linjiahui/p/6143827.html
Copyright © 2011-2022 走看看