zoukankan      html  css  js  c++  java
  • c语言指向结构体的指针作为函数参数

    注意

    这里包括形参和实参

    struct dangdangtest
    {
        
        char name[30];
        
        int num;
        
        
    };
    
    void change(int num)//值传递 新建一个变量接受传递的值
    {
        num = 1000;
    }
    
    //使用结构体作为参数 浪费内存 需要建立结构体
    void change2(struct dangdangtest ddt)
    {
        ddt.num = 1000;
        printf("
    main=%p,%p",ddt,&ddt.num);//函数内部结构体地址
    }
    //函数内部改变需要地址 所以需要指针保存
    void changeall(struct dangdangtest *p)
    
    {
        (*p).num = 1000;//*根据地址取出内容
    }
    void main5()
    {
        struct dangdangtest ddt;
        ddt.num = 99;
        sprintf(ddt.name,"adf");//初始化
        printf("
    main=%p,%p",ddt,&ddt.num);//main函数内部结构体地址
        /*change(ddt.num);
        printf("%d",ddt.num);99*/
    
        /*change2(ddt);
        printf("%d",ddt.num);*/
        changeall(&ddt);
        printf("
    %d",ddt.num);
        getchar();
    }
    
    //参数对于数组来说传递的是地址 4个字节
    void datatest(struct dangdangtest ddd[10])
    {
        printf("datatest=%d",sizeof(ddd));
    }
    
    void dtc(struct dangdangtest ddd[10])
    {
        ddd[4].num = 88;
        sprintf(ddd[4].name,"654656");//前面有提过
        printf("datatest=%d",sizeof(ddd));
    }
    void main()
    {
        struct dangdangtest ddd[10];//10个元素 36*10
        
        struct dangdangtest *p = ddd;
        printf("
    %d",sizeof(ddd));//
         ddd[0].num = 90;
        sprintf(ddd[0].name,"dfasdf");
        /*datatest(ddd);
        printf("main=%d",sizeof(ddd));*/
        getchar();
    }
  • 相关阅读:
    swift 获取iphone设备型号
    如何判断静态库是否支持64位
    MAC登录界面多了一个其他账户
    swift4 UIScrollView滑动手势与UIPageViewController冲突解决办法
    swift 保留两位小数以及前面不0
    本地通知
    swift3 UIColor扩展
    swift3 控件创建
    数据库--数据库事务
    数据库---触发器trigger
  • 原文地址:https://www.cnblogs.com/lanjianhappy/p/6011528.html
Copyright © 2011-2022 走看看