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...