• 关于指针的知识点


    1函数的形参和在函数内声明的变量都是该函数的局部变量,不同函数的局部变量相互独立

    2 void ab(int a,int b);调用时:ab(1,2);是把1赋值给a,把2赋值给b

    3形参的改变和实参的改变无关。实际参数(简称实参)

    4一个正确转换两个数的值的函数:

    #include<stdio.h>

    void swap(int* a,int* b)

    {

       int t=*a;

       *a=*b;

       *b=t;

    }

    int main()
    {

      int a=3,b=4;

      swap(&a,&b);

      cout<<a<<b<<endl;

       return 0;

    }

    5   *a是指:a指向的变量,而不仅是a指向的变量所拥有的值

    6   *a =*a+1;是让a指向的变量自增1,也可以写成(*a)++,因为++运算符优先级高于去内容运算符*,所以要加括号

    7这个程序是错误的

    void swap(int* a,int* b)

    {

       int* t;

       *t=*a;

       *a=*b;

        *b=*t;

    }

     错误原因:t是一个变量(指针也是一个变量,只不过类型是指针),因此它的值在赋值前是不确定的。如果这个“不确定的值”所代表的内存单元恰好是能写入的,那么这段程序将正常工作;但如果它是只读的,程序可能崩溃。

    8 sizeof 输出的是字节数 

       如:int a=3;

              int len=sizeof(a);

              cout<<len<<endl;

              输出结果为4(一个int占4个字节)

       如:double a=3;

              int len=sizeof(a);

              cout<<len<<endl;

              输出结果为8(一个int占8个字节)

         这里*a代表a[0],而不是整个数组

    9在函数定义中的int a[ ]等价于int* a

    10    a是数组名,a+1指向a[1]

           若p是指针,k是整数,p+k就是指向指针后面第k个元素

            p-k就是指向p前面第k个元素

    11两种主要的求数组和的方法

    1.

    #include <iostream>


    using namespace std;
     int sum(int* begin,int* end)
     {
         int len=end-begin;
         int cul=0;
         for(int i=0;i<=len-1;i++)
            cul=cul+begin[i];
         return cul;
     }
    int main()
    {
        int a[5]={1,2,3,4,5};
        cout<<sum(a,a+5)<<endl;
    }

    2.

    #include <iostream>


    using namespace std;
    int sum(int* begin,int* end)
    {
        int cul=0;
        for(int* p=begin;p!=end;p++)
            cul=cul+*p;
        return cul;
    }
    int main()
    {
        int a[5]={1,2,3,4,5};
        cout <<sum(a,a+5) << endl;
        return 0;
    }


  • 相关阅读:
    尬聊攻略丨过年回家,你最怕被亲戚问什么?
    有人被盗刷900次? 支付宝发布年终“神反转”盘点
    470余万条疑似12306用户数据遭贩卖 嫌疑人被刑拘
    利用Python实现对Web服务器的目录探测
    栈空间溢出
    KB奇遇记(6):搞笑的ERP项目团队
    探寻不同版本号的SDK对iOS程序的影响
    阅读《Android 从入门到精通》(24)——切换图片
    leetcode
    Grunt的配置及使用(压缩合并js/css)
  • 原文地址:https://www.cnblogs.com/iamjuruo/p/7470972.html
Copyright © 2020-2023  润新知