zoukankan      html  css  js  c++  java
  • 第一次作业 计科一班程晨

    一、指针定义的学习

        1.观看视频:第八章指针与字符串

        2.代码文件列表

     

       3.手写笔记

                   

      

       4.问题

          ·为什么int i;scanf("%d",i); 没有报错

            解决:问同学并且反复观看视频后明白整数和地址是一样大的,scanf认为传入的是i的地址,所以编译不会报错,但是运行会出错,因为scanf把获取的值写到了错误的位置

         ·为什么*p=26后k=26

            解决:视频解释原因为 *是一个单目运算符,用来访问指针的值所表示的地址上的变量,在*p被赋值26后,说明在经历函数调用后i的值被改变,故而k=26

         ·关于*和&的混淆

          解决:上网解决。int a;    int *pa=&a;  那么*&a可以理解为*(&a),&a表示取变量a的地址(等价于pa),*(&)a表示取这个地址上的数据(等价于*pa),即*&a仍然等价于a。&*pa可以理解为&(*pa),*pa表示取得pa指向的数据(等价于a),&(*pa)表示数据的地址(等价于&a),所以&*pa等价于pa。

         ·相同类型指针间可以做什么

           解决:网上搜索后得到答案。可以比较大小,比较原则按照实际内存的高低位;可以赋值;两个相同指针变量相减可以获得在它们之间相隔的同类型元素个数

     

    二、PTA作业

        1.存在的问题

          ·当定义指针时一定是 int *吗

           解决:看完视频并且浏览百度后知道,int *p; 中,int表示该指针变量所指向的数据的类型,例如int,double,float,datatype等等。p是一个指向int类型数据的指针变量,它指向哪一份数据应该由赋予它的值决定。

         ·什么时候必须带*什么时候不能带*

          解决:根据百度得知定义指针变量时必须带*,给指针变量赋值时不能带*。*是一个特殊符号,表明一个变量是指针变量,在定义一个变量时必须带*号,在给这个变量赋值时,因为已经知道它是一个指针变量,就不需要再带*号,后面也可以像使用普通变量一样使用这个指针变量。

  • 相关阅读:
    [SCOI2005]骑士精神
    [SCOI2005]超级格雷码
    [SDOI2013]淘金
    [SCOI2014]方伯伯的商场之旅
    P4317 花神的数论题
    RSA算法原理(一)
    PKI 笔记
    字符串解析运用-将字符串分解为多个整数,求各整数之和(华为oj)
    pycharm快捷键、常用设置、配置管理
    启动ipython notebook(jupyter)
  • 原文地址:https://www.cnblogs.com/g-dragon-c/p/12412020.html
Copyright © 2011-2022 走看看