「結構型別變數」是什麼,與「結構體成員變數」有什麼區別

2021-03-21 15:56:07 字數 3762 閱讀 1187

1樓:久落江邊

1.c的結構體和c++結構體的區別

1.1 c的結構體內不允許有函式存在,c++允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式、析構函式、和this指標的。

1.2 c的結構體對內部成員變數的訪問許可權只能是public,而c++允許public,protected,private三種。

1.3 c語言的結構體是不可以繼承的,c++的結構體是可以從其他的結構體或者類繼承過來的。

以上都是表面的區別,實際區別就是面向過程和物件導向程式設計思路的區別:

c的結構體只是把資料變數給包裹起來了,並不涉及演算法。

而c++是把資料變數及對這些資料變數的相關演算法給封裝起來,並且給對這些資料和類不同的訪問許可權。

c語言中是沒有類的概念的,但是c語言可以通過結構體內置立函式指標實現物件導向思想。

2.c++的結構體和c++類的區別

2.1 c++結構體內部成員變數及成員函式預設的訪問級別是public,而c++類的內部成員變數及成員函式的預設訪問級別是private。

2.2 c++結構體的繼承預設是public,而c++類的繼承預設是private。

什麼是結構型別變數?與結構體成員變數有什麼區別??

2樓:仁昌居士

結構型別變數是一些組合成乙個整體的不同型別的資料變數,雖然各個變數分別屬於不同的資料型別,但是它們之間密切相關,各種資訊都屬於同乙個人。這時,可以宣告乙個結構型別,由多種變數組成。變數可以是基本資料型別,也可以是自定義的資料型別。

結構型別變數與結構體成員變數區別為:記憶體單元不同、編譯不同、賦值不同。

一、記憶體單元不同

1、結構型別變數:系統為結構型別變數分配實際的記憶體單元,並在其中存放具體的資料。

2、結構體成員變數:結構體成員變數系統不為之分配實際的記憶體單元。

二、編譯不同

1、結構型別變數:在編譯時,系統不為結構型別變數的型別分配空間。

2、結構體成員變數:在編譯時,系統為結構體成員變數的型別分配空間。

三、賦值不同

1、結構型別變數:不同結構型別的變數不允許相互賦值,即使它們有相同的成員。

2、結構體成員變數:結構體成員變數的為。不同結構體只要有相同的成員,允許相互賦值。

3樓:無理想主義者

結構體型別變數就是你定義的結構體型別,然後宣告了乙個這種型別的變數。

而結構體成員變數就是你申明的這個結構體變數中的乙個成員,他是乙個變數變數。

舉個例子:

struct bird

;這是乙個結構體,而他僅僅是個類,是記憶體的一種組織方式,是沒有實體的。

現在用它定義乙個變數,

bird a;

這個a就是乙個結構體變數,是乙個類的物件,在占用了一塊記憶體的。

而a.num,是這個變數中的乙個成員變數,一旦a被構析,num也就存在了。

而a:fly(),是這個變數中的乙個成員函式。

這樣應該很清楚了吧。

4樓:shine雪瑞

「結構」是一種構造型別。如同在說明和呼叫函式之前要先定義函式一樣,那麼在說明和使用之前必須

先定義它。結構既是一種「構造」而成的資料型別,它是由若干「成員」組成的,叫做結構每乙個成員可以是乙個基本資料型別或者又是乙個構造型別。結構體是由一系列具有相同型別或不同型別的資料構成的資料集合,是乙個變數變數結構體型別變數就是定義的結構體型別。

而結構體成員變數就是申明的這個結構體變數中的乙個成員,然後宣告了乙個這種型別的變數,也就是構造它

結構體型別變數就是你定義的結構體型別,然後宣告了乙個這種型別的變數。

而結構體成員變數就是你申明的這個結構體變數中的乙個成員,他是乙個變數變數

結構型別變數的定義

在定義某個結構型別後,程式設計師就可以說明該結構型別的記憶體變數。它的說明形式與前面介紹的簡單資料型別的變數說明基本上一致

5樓:_小鼓勵

舉個例子:

struct a

;struct a x ; // x是結構體型別變數x.a=1 ; // x.a、x.b、x.c是結構體成員變數

6樓:匿名使用者

結構型別變數的定義

在定義某個結構型別後,程式設計師就可以說明該結構型別的記憶體變數。它的說明形式與前面介紹的簡單資料型別的變數說明基本上一致。其定義格式如下:

[變數名] 結構名 <[欄位值表]>

c語言中,結構體型別名和變數名之間有什麼區別?如何區分?

7樓:匿名使用者

struct stu(…

)stu1;

stu就是型別名,stu1就是變數名,函式裡面可以用struct stu s這種形勢繼續定義像s這樣變數,扯指標就有點小麻煩。記得不是很清了,大概是這樣,另,不用給分了,好歹加了好友的

8樓:匿名使用者

結構體名字是類名,變數名是實體名,乙個類可以有許多實體。好比說籠統說「鉛筆」是乙個類,那麼文具盒裡面具體的每一支鉛筆都是乙個實體。結構體的成員只起到規劃的作用,變數才是具體實施的。

能理解否???

定義結構體變數語法有幾種,分別是

9樓:匿名使用者

一是結構標記的宣告,如下:

struct point ;

建立了標記point,就可以用它來宣告變數:

struct point p1,p2;

注意不能漏掉前面的struct。

結構標記的宣告可以和結構變數的宣告合併在一起:

struct point p1,p2;

二是結構型別的定義:

typedef struct point;

然後就可以像內建型別一樣使用point,如宣告變數:

point p1,p2;

這裡不允許寫struct point。

c中結構體型別與共用體型別變數的不同點是什麼

10樓:匿名使用者

最大的區別是他們對記憶體的占用。結構體中的每個元素,都會按照資料型別的大小在記憶體中分配儲存空間,結構體所占用的記憶體空間是其中所有元素所占用的記憶體空間的和,是乙個固定的數值。共用體變數所占用的記憶體空間的大小是由所有元素中占用空間最大的元素決定的,他們共用這個空間。

其次,結構體中的元素可以同時存在,而在共用體變數中,在某一時刻,只能有共用體中的乙個變數存在。

結構體變數和結構體指標有什麼區別?謝謝了,大神幫忙啊

結構體中成員變數引用·和—>區別?eg:p.num=5和p—>num=5;有什麼區別,那一種更好?為什麼?

11樓:匿名使用者

沒有更不更好,而是實際應該選擇什麼.

.用於物件

->用於指標引用

abap 裡面結構體與結構型別有區別嗎?定義的結構到底既是型別又是物件,還是只是物件,求賜教?

12樓:匿名使用者

首先要理解什麼是結構,簡單的結構就是包含了多個欄位的一種資料型別,即:結構型別,就是所謂的結構體,或者結構;

se11中定義的都僅僅是資料型別(包括結構型別、內錶型別),table也可以作為一種結構型別;

在程式中使用結構體時,例如:

data: ls_mara type mara.

mara是物料主資料表,當然也能作為結構型別,ls_mara就是乙個型別為mara的工作區;

結構體變數和變數之間是怎樣賦值,結構體變數和變數之間是怎樣賦值

結構體要每個成員變數賦值,而普通變數直接賦值 不行哦,型別不同,又不能進行型別轉化,如果你一定要這樣賦值的話,你就過載運算子吧 逐項 逐變數賦值 比如 struct a,b a.a 1 a.b 2 b.a a.a b.b a.b struct a a a a.m age 20 a.m name cj...

c語言定義結構體變數,C語言 定義結構體變數

樂跑小子 首先,定義一個結構的一般形式為 struct結構名 成員表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,其形式為 型別說明符 成員名 成員名的命名應符合識別符號的書寫規定。例如 struct stu 在這個結構定義中,結構名為stu,該結構由4個成員組成。...

關於c語言結構體變數成員引用的問題

沒有a 這種賦值方法,改成 a.age 10 a.cass 3 或b age 10 b class 3 都行。另 class是c 關鍵字,若使用的是c 相容的c編譯器,則過不了編譯,應另起一名,如class,或classs等。c語言 結構體變數的引用的問題 你問的兩個問題都跟結構體無關。strcpy...