美文网首页
C语言结构体指针与结构体变量作形参的区别

C语言结构体指针与结构体变量作形参的区别

作者: 无聊的CairBin | 来源:发表于2021-07-31 15:07 被阅读0次

区别

结构体变量

  • 结构体变量作为形参,传递的是结构体变量本身,是一种值传递
  • 形参结构体变量成员值的改变不影响对应的实参构体变量成员值的改变

结构体指针

  • 结构体指针作为函数参数,传递的是指向结构体变量的本身
  • 结构体指针指向的变量成员值的改变影响对应的实参构体变量成员值的改变

代码

直接说有些抽象难懂,敲代码演示一遍就很清楚了

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct stru{
    int num;
};

//形参为结构体变量
void addNum(struct stru p, int num2)
{
    p.num += num2;
}

//形参为结构体指针
void addNum2(struct stru *p, int num2)
{
    if(!p) return;  //确保指针不为空指针
    p->num += num2;
}

int main(){
    
    struct stru t;
    t.num = 50;
    
    addNum(t,5000);
    printf("形参为结构体变量得到的结果为: %d\n", t.num);
    
    addNum2(&t,5000);
    printf("形参为结构体指针得到的结果为: %d\n", t.num);
    
    return 0;
    
}

输出结果

形参为结构体变量得到的结果为: 50
形参为结构体指针得到的结果为: 5050

相关文章

  • C语言结构体指针与结构体变量作形参的区别

    区别 结构体变量 结构体变量作为形参,传递的是结构体变量本身,是一种值传递 形参结构体变量成员值的改变不影响对应的...

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • C语言20 结构体指针

    C语言20 结构体指针 探测结构体指针的特性 ++、-- 加法与减法 指针相减 使用结构体指针 结构体指针一定要指...

  • 函数形参之结构体变量、指针、引用

    结构体变量作为函数形参: 输出结果:12345 Zhang San 70.0 80.0 90.0 结构体指针作为函...

  • c语言 2018-05-29

    c语言文件结构 (-> and .) 定义结构体指针,访问成员时就用->定义结构体变量,访问成员时就用.例如:ty...

  • Golang 指针和结构体

    Golang 指针和结构体 于c语言相同,go中也有指针和结构体的概念。指针表示变量的内存地址,结构体用来存储同一...

  • C语言基础及指针⑧文件IO

    接续上篇C语言基础及指针⑦结构体与指针在结构体与指针中 , 我们了解到结构体与java中的类相似 , 也是一种自定...

  • Day10

    指针 指针与函数 练习回调函数 结构体 基本概念 结构体变量初始化 定义结构体变量 结构体变量作用域结论; 和变量...

  • 结构体专题

    结构体变量和结构体指针的区别[https://blog.csdn.net/taolaodawho/article/...

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

网友评论

      本文标题:C语言结构体指针与结构体变量作形参的区别

      本文链接:https://www.haomeiwen.com/subject/qjfkvltx.html