C语言 | 结构体指针
生活随笔
收集整理的這篇文章主要介紹了
C语言 | 结构体指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C語言指向結構體變量的指針
在C語言中,指向結構體對象的指針變量既可以指向結構體變量,也可指向結構體數組中的元素。
指針變量的基類型必須與結構體變量的類型相同。
C語言中允許 (*p).num用p->num來代替 ->代表一個箭頭 p->num表示p所指向的結構體變量中的num成員C語言指向結構體數組的指針
( p)->num先使p自加1,然后得到p指向的元素中的num成員值。
(p )->num先求的p->num的值,然后再使p自加1。
C語言用結構體變量和結構體變量的指針作函數參數
用結構體變量的成員作參數,用法和用普通變量作實參是一樣的,屬于“值傳遞”方式。應當注意實參與形參的類型保持一致。
用結構體變量作實參。用結構體變量作實參時,采取的也是“值傳遞”的方式,將結構體變量所占的內存單元的內容全部按順序傳遞給形參,形參也必須是同類型的結構體變量。
用指向結構體變量(或數組元素)的指針作實參,將結構體變量的地址傳給形參。
C語言使用結構體指針輸出生日
#include #include struct?Age {int?year;int?month;int?day; }; struct?Student {char?name[20];?//姓名struct?Age?birthday;??//生日 }; int?main(void) {struct?Student?student1;?//定義結構體變量student1struct?Student?*point??=?NULL;??//定義一個指向Student結構體類型的指針變量point?point = &student1;?//point指向結構體變量student1的首地址, 即第一個成員的地址strcpy((*point ).name,?"張三");?//(*point).name等價于student1.name(*point ).birthday.year =?1989;(*point ).birthday.month =?4;(*point ).birthday.day =?29;printf("姓名:%s\n", (*point ).name);?//(*point).name不能寫成pointprintf("生日:%d-%d-%d\n", (*point).birthday.year, (*point).birthday.month, (*point).birthday.day);return?0; }編譯運行結果:
姓名:張三 生日:1989-4-29-------------------------------- Process exited after?0.04992?seconds?with?return?value?0 請按任意鍵繼續. . .聲明:
本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。
總結
以上是生活随笔為你收集整理的C语言 | 结构体指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于执行力的经典语录182个
- 下一篇: C语言 | 变量的存储方式