zoukankan      html  css  js  c++  java
  • c语言学习的第12天

    #include <stdio.h>

    int main(void)

    {

        int *p;

        int i=5;

        char ch='A';

        p=&i;

        *p=99;

        printf("i=%d,*p=%d ",i,*p);

    }

    p=&i,这样变量p就保存了变量i的地址,*p=9999赋值给*p,又因为*p等价于变量i,因此变量i的值也变成99

    #include <stdio.h>

    void swap(int i,int j)

    {

        int t;

        t=i; i=j; j=t;

    }

    int main(void)

    {

        int a=3;

        int b=5;

        swap(a,b);

        printf("a=%d,b=%d ",a,b);

        return 0;

    }

    ab的值并没有互换,因为当swap函数执行完成后,ab的内存空间自动被收回了,因此最后打印的ab的值为主函数中ab定义的值

    #include <stdio.h>

    void swap(int *i,int *j)

    {

        int t;

        t=*i; *i=*j; *j=t;

    }

    int main(void)

    {

        int a=3;

        int b=5;

        swap(&a,&b);

        printf("a=%d,b=%d ",a,b);

        return 0;

    }

    swap传递了两个实参&a&b&a代表的是变量i&b代表的是变量j,相当于i=&aj=&b,因此*i等价于变量a*j等价于变量b,因为在内存空间找到了变量ab的地址,因此可以修改变量ab的值,上面的例子说明了被调用函数通过指针可以修改调用函数多个变量的值,下面的例子也可以说明:

    #include <stdio.h>

    void swap(int *i,int *j)

    {

        *i=1;

        *j=2;

    }

    int main(void)

    {

        int a=3;

        int b=5;

        swap(&a,&b);

        printf("a=%d,b=%d ",a,b);

        return 0;

    }

    #include <stdio.h>

    void f(int *pa,int len)

    {

        int i;

        for (i=0;i<len;i++)

            printf("%d",*(pa+i));

            printf(" ");

    }

    int main(void)

    {

        int a[5]={1,2,3,4,5};

        f(a,5);

        return 0;

    }

    a[5]={1,2,3,4,5}定义的是一个数组,f(a,5);中的a代表的是a[0]的地址,pa就代表a[i]的地址,*(pa+i)中的pa+i分别代表了a[0]-a[5]之间的数组变量地址,上面的*(pa+1)也可以用pa[i]表示

  • 相关阅读:
    IO模型
    函数第一类对象,闭包,迭代器
    admin里面的注册模型类的写法
    升级pip
    Windows部署superset操作手册
    Python命名空间和作用域窥探
    使用CSS3画出一个叮当猫
    D
    [java]说说 JRE , JDK , JVM 三者之间的区别与联系
    H~N皇后问题
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5654250.html
Copyright © 2011-2022 走看看