假設我有一個包含名稱和數字的C++結構,例如默認賦值運算符如何在struct中工作?
struct person {
char name[20];
int ssn;
};
假設我聲明瞭兩個人變量:
person a;
person b;
其中a.name = 「喬治」,a.ssn = 1,b.name = 「弗雷德」 和b.ssn = 2 。
在後面的代碼
a = b;
printf("%s %d\n",a.name, a.ssn);
假設我有一個包含名稱和數字的C++結構,例如默認賦值運算符如何在struct中工作?
struct person {
char name[20];
int ssn;
};
假設我聲明瞭兩個人變量:
person a;
person b;
其中a.name = 「喬治」,a.ssn = 1,b.name = 「弗雷德」 和b.ssn = 2 。
在後面的代碼
a = b;
printf("%s %d\n",a.name, a.ssn);
默認賦值運算符確實的各部件的部件逐遞歸分配假設。
在1短,描述性答案完美答案 – Sam 2013-09-13 13:43:16
最佳答案我見過這裏是單線的。 – hkBattousai 2015-06-05 12:06:19
C++中的默認賦值運算符使用Memberwise Assignment來複制值。這是它有效地分配所有成員彼此。在這種情況下,會導致b具有與a相同的值。
例如
a = b;
printf("%s\n", b.name); // Prints: George
b.name[0]='T';
printf("%s\n", a.Name); // Prints George
printf("%s\n", b.name); // Prints Teorge
是否有問題的地方在那裏? – Turtle 2010-03-20 17:43:25
Skydoor似乎相信,SO是閱讀書籍甚至思想的替代品。 129個問題 - 零答案。 – 2010-03-20 17:53:31
說到書籍,我可以指給你看http://www.amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326973/ref=sr_1_1?ie=UTF8&s=books&qid=1269107822&sr=8-1 – wheaties 2010-03-20 17:57:37