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

2022-01-05 07:00:25 字數 2473 閱讀 4829

1樓:匿名使用者

結構體要每個成員變數賦值,而普通變數直接賦值

2樓:微微姐的城堡

不行哦,型別不同,又不能進行型別轉化,如果你一定要這樣賦值的話,你就過載運算子吧

3樓:匿名使用者

逐項、逐變數賦值

比如:struct a,b; a.a=1; a.b=2; b.a=a.a; b.b=a.b;

4樓:張春吉

struct a

a a;

a.m_age = 20;

a.m_name = "cj";

希望能幫到你

5樓:yn天會

結構體變數名.變數=變數=

6樓:記住一座城

結構體變數和普通變數因為型別不同,所以不能相互賦值。

比如struct node

;node a,b;

int e;

char n;

a=b,a.ele=e,b.name=n;正確,同型別賦值ele=e,name=n;錯誤,必須指明是哪乙個變數的成員比如a.ele=e,b.name=n;

結構體型別的指標引用成員變數,給成員變數用scanf怎麼賦值?

7樓:興弘懿那葛

你需要定義結構體型別的變數啊

例如:graph

a,*ga;ga=

&a;//ga指向a

scanf(.....,&(ga->x[i]...);

這樣才是可以的。

8樓:南霞輝雪珂

沒錯啊,編譯都通過了,會不會是你的編譯器的問題?

9樓:性天藍鄔音

ga是指標變數,沒有給它分配記憶體,可以用malloc函式

在c語言中。結構體變數之間可以相互賦值嗎?

10樓:問明

可以直接賦值。定義結構體型別,然後用這個型別定義出來的變數就是結構體變數。

c語言在相同型別的變數間賦值時是直接記憶體複製的,即將他們的記憶體進行複製,這裡因為同樣結構體變數,屬於同一種變數,所以賦值時是按照他們的記憶體分布來直接拷貝的。

舉例:voidmain()

stustu1={0,10};

stutemp={12,88};

stu*p1=&stu1;

stu*p2=&temp;

printf("%d-%d\n",temp.name,temp.num);

temp=stu1;

printf("%d-%d\n",temp.name,temp.num);

temp={10,10};

printf("%d-%d\n",stu1->name,stu1->num);

printf("%ld-\n",&stu1);

printf("%ld-\n",stu1);

printf("%ld-\n",&temp);

printf("%ld-\n",temp);

change(stu1,temp);

temp=stu1;

p2=p1;

printf("%d-%d\n",p2->name,p2->num);

c語言中變數間互相賦值很常見,例如:

inta,b;

a=b;

結構體也是變數(自定義變數),兩個結構體之間直接賦值按道理應該也是可以的吧,將乙個結構體物件賦值給另乙個結構體物件的。

例:#include"stdio.h"

structtest

inta;

intb;

intc;

char*d;

intmain()

structtestt1={1,2,3,"tangquan"};

structtestt2={0,0,0,""};

printf("%d,%d,%d,%s\r\n",t2.a,t2.b,t2.c,t2.d);

t2=t1;

printf("%d,%d,%d,%s\r\n",t2.a,t2.b,t2.c,t2.d);

return0;

11樓:匿名使用者

1、結構體變數是可以直接賦值的。定義結構體型別,然後用這個型別定義出來的變數就是結構體變數。

2、c語言在相同型別的變數間賦值時是直接記憶體複製的,即將他們的記憶體進行複製,這裡因為同樣結構體變數,屬於同一種變數,所以賦值時是按照他們的記憶體分布來直接拷貝的。

12樓:匿名使用者

可以的,同型別的結構體變數可以。比如:

struct test a,b;

a=b;//這樣可以的。

如果是不同的型別,但是結構體沒資料型別一樣就要用memcpy拷貝記憶體(標頭檔案string.h)。例如:

struct test1 a;

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

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

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

1.c的結構體和c 結構體的區別 1.1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。1.2 c的結構體對內部成員變數的訪問許可權只能是public,而c 允許public,protected,private三...

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

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