C语言结构体指针与结构体变量作形参的区别
生活随笔
收集整理的這篇文章主要介紹了
C语言结构体指针与结构体变量作形参的区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
區(qū)別
結(jié)構(gòu)體變量
- 結(jié)構(gòu)體變量作為函數(shù)參數(shù),傳遞的是結(jié)構(gòu)體變量本身,是一種值傳遞
- 形參結(jié)構(gòu)體變量成員值的改變不影響對(duì)應(yīng)的實(shí)參構(gòu)體變量成員值的改變
結(jié)構(gòu)體指針
- 結(jié)構(gòu)體指針作為函數(shù)參數(shù),傳遞的是指向結(jié)構(gòu)體變量的本身
- 結(jié)構(gòu)體指針指向的變量成員值的改變影響對(duì)應(yīng)的實(shí)參構(gòu)體變量成員值的改變
代碼
直接說有些抽象難懂,敲代碼演示一遍就很清楚了
#include <stdio.h> #include <stdlib.h> #include <string.h>struct stru{int num; };//形參為結(jié)構(gòu)體變量 void addNum(struct stru p, int num2) {p.num += num2; }//形參為結(jié)構(gòu)體指針 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("形參為結(jié)構(gòu)體變量得到的結(jié)果為: %d\n", t.num);addNum2(&t,5000);printf("形參為結(jié)構(gòu)體指針得到的結(jié)果為: %d\n", t.num);return 0;}輸出結(jié)果
形參為結(jié)構(gòu)體變量得到的結(jié)果為: 50 形參為結(jié)構(gòu)體指針得到的結(jié)果為: 5050 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的C语言结构体指针与结构体变量作形参的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CuteBot智能小车
- 下一篇: 顺序表的概念及定义