C语言之struct A *b和struct A c区别
生活随笔
收集整理的這篇文章主要介紹了
C语言之struct A *b和struct A c区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
struct?A?*b;?是指針
struct?A?c;?是定義了一個struct?A對象,你得提供相應的結構體的具體定義
結構體A沒有具體的定義,當struct?A?c時,實際是定義一個結構體變量,這是要分配存儲空間的,空間大小依結構體中具體的變量而定,如果沒有具體的結構體定義,編譯器不知道結構體到底是什么樣的,就無法知道結構體到底占據所少存儲空間,所以編譯不能通過.
struct?A?*p只是定義一個指針,跟具體結構體的關系不是很大,因為在32位平臺上,不管什么指針,其大小永遠都是4個字節,指針其實就是4個字節的無符號整數,用來標記內存地址
舉例:
?
#include<stdio.h>struct A {int data; };int main(){struct A *b;struct A c;b = &c;c.data = 10;printf("%d\n", b->data);return 0; }?
?
?
結果:
為10
注意是%d,不是d%,以后注意了
.
?
總結
以上是生活随笔為你收集整理的C语言之struct A *b和struct A c区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之用Accessibili
- 下一篇: 用递归实现字符数组的反转