C语言结构体指针与结构体变量作形参的区别
生活随笔
收集整理的這篇文章主要介紹了
C语言结构体指针与结构体变量作形参的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
區別
結構體變量
- 結構體變量作為函數參數,傳遞的是結構體變量本身,是一種值傳遞
- 形參結構體變量成員值的改變不影響對應的實參構體變量成員值的改變
結構體指針
- 結構體指針作為函數參數,傳遞的是指向結構體變量的本身
- 結構體指針指向的變量成員值的改變影響對應的實參構體變量成員值的改變
代碼
直接說有些抽象難懂,敲代碼演示一遍就很清楚了
#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 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的C语言结构体指针与结构体变量作形参的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CuteBot智能小车
- 下一篇: 顺序表的概念及定义