程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> struct-C語言結構體b指向結構體變量a的地址了,為何最終結果沒有修改a成員的值呢?

struct-C語言結構體b指向結構體變量a的地址了,為何最終結果沒有修改a成員的值呢?

編輯:編程綜合問答
C語言結構體b指向結構體變量a的地址了,為何最終結果沒有修改a成員的值呢?

include

include

typedef struct stu
{
char name[10],gender;
int score;
}STU;
void f(char *p)
{
strcpy(p,"Qian");
}
main()
{
STU a={"zhao",'m',290},b;b=a;
f(b.name);
b.gender='f';
b.score=350;
printf("%s,%c,%d,",a.name,a.gender,a.score);
printf("%s,%c,%d,",b.name,b.gender,b.score);

}
/*
1.程序運行結果為:
zhao,m,290,Qian,f,350,
=======b=a;---b指向結構體變量a的地址了,然後給b變量成員賦值,為何最終結果沒有修改a成員的值呢?
*/

最佳回答:


小伙子,你指針沒學好啊,跟我大學時候一樣,對指針沒概念。
STU a={"zhao",'m',290},b;b=a;這樣的定義是拷貝;雖然你沒有定義拷貝構造函數,但是都是基本類型,所以copy是成功的。

STU a={"zhao",'m',290},*b;b=&a;這樣叫指針。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved