zoukankan      html  css  js  c++  java
  • 指针

     指针图解:

    a[i]与*(a+i)二者是等价的,当对指针进行一个加整数i操作时,其实得到了一个地址。

    注意函数调用栈与堆的区别,见程序的内存布局此篇文章

    调用函数实现值的交换,区别如下:指针的地址指向作用一目了然。

    数组名,实际上就是数组的首地址,表示数组在内存中的起始位置。

    指向指针的指针,通常用来访问指针数组

    传递 函数参数和返回值的三种方法:

    • 传值
    • 传指针
    • 传引用

    code举例:

     1 int FuncByValue(int  x)
     2 {
     3     x = x + 1;
     4     return x;
     5 }
     6 
     7 void FuncByPointer(int* p)
     8 {
     9     *p = *p + 1;
    10 }
    11 
    12 
    13 void FuncByReference(int& r)     此处引用r和变量n就是同一个数据
    14 {
    15     r = r + 1;
    16 }
    17 
    18 int main()
    19 {
    20     
    21 
    22     int n = 0;
    23     cout << "n的初始值,n=" << n << endl;
    24 
    25     //调用传值
    26     FuncByValue(n);
    27     cout << "传值,n= " << n << endl;
    28 
    29     //调用传指针
    30     FuncByPointer(&n);
    31     cout << "传指针n=" << n << endl;
    32 
    33     //调用传引用
    34     FuncByReference(n);
    35     cout << "传引用,n= " << n << endl;


    n的初始值,n=0
    传值,n= 0
    传指针n=1
    传引用,n= 2

    在可以的情况下,应尽量使用传引用来传递函数参数,效率高,形式自然,结合了二者的优点。

  • 相关阅读:
    只能输入数字的文本框
    Ajax
    Crtl+Enter提交留言
    onkeydown onkeyup键盘事件
    面向对象基础
    JS鼠标拖拽
    博客收藏
    不错的按钮
    如何在你的java程序中注册系统级热键
    开源GIS系统
  • 原文地址:https://www.cnblogs.com/skylover/p/7226657.html
Copyright © 2011-2022 走看看