zoukankan      html  css  js  c++  java
  • 函数和指针

    我们写一个函数

    在In main互换后,x和y并没有改变,这里涉及到了函数作用域的问题

    可以自己体会到每个函数的变量都是独立的,不能互相干扰,不能冲突

    我们来使用指针

    In main互换后x和y变啦

    其实很好理解

    反汇编下其实可以理解更好,但不用也可以很好理解

    所以有了指针(地址),相当于有了哆啦A梦的任意门

    #include "stdafx.h"
    #include <windows.h>
    
    void swap(int *x, int *y);
    
    void swap(int *x, int *y)
    {
        int temp;
    
        printf("In swap,互换前:x = %d, y = %d
    ", *x, *y);
        
        temp = *x;
        *x = *y;
        *y = temp;
    
        printf("In swap,互换后:x = %d, y = %d
    ", *x, *y);
    }
    
    int main()
    {
        int x = 3, y = 5;
        printf("In main,互换前:x = %d, y = %d
    ", x, y);
        swap(&x, &y);
        printf("In main,互换后:x = %d, y = %d
    ", x, y);
        system("pause");
        return 0;
    }

     接下来看看传数组,呜呜最讨厌数组了

    发现第六个都是520

    所以可以说,这里传递的参数不是将整个数组传递进去

    只是将数组的第一个地址传递进去了

    所以改的时候是把地址所在的值给改咯!!

    这里传入的是数组的第一个元素的地址

     

  • 相关阅读:
    2020-03-23
    2020-03-22
    2020-03-21
    2020-03-20
    2020-03-19
    2020-03-18
    2020-03-17
    单元测试-java
    2020-03-16
    C语言拯救计划Day3-1之求一批整数中出现最多的个位数字
  • 原文地址:https://www.cnblogs.com/EvilAnne/p/9727327.html
Copyright © 2011-2022 走看看