1樓:
沒有a=;
這種賦值方法,改成
a.age=10;
a.cass=3;
或b->age=10;
b->class=3;
都行。另:class是c++關鍵字,若使用的是c++相容的c編譯器,則過不了編譯,應另起一名,如class,或classs等。
c語言 結構體變數的引用的問題
2樓:陳宗權
你問的兩個問題都跟結構體無關。
strcpy是乙個系統函式,用於複製字串,格式為strcpy(a,b)
其中a是乙個字元陣列的首位址,b是乙個要複製的字串,函式的功能是把b裡面的字串複製到字元陣列a中去。
3樓:匿名使用者
不能寫成逗號啊,這是結構體的語法,不同的變數用同一名字來引用,看看c語言方面的書籍就能明白了。
c語言中對結構成員的引用問題 求 詳細
4樓:伏從靈
(51719)
stu 結構體變數
p 指向stu 結構體變數的指標
(a) *p.num
操作符.的優先順序高於*操作符,所以相當於*(p.num)p是指標,用.操作符取成員肯定是錯誤的。
(b) (*p).score
先對p解引用得到結構體物件,然後.操作得到成員,正確。
(c) p->num
p->num=(*p).num 正確
(d) stu.name
取結構體變數成員,正確。
(51720)
a) p.num
p是指標,無法取成員,錯誤。
(b) student.num
student是結構體名,不是變數,無法取成員,錯誤。
(c) p->num
=(*p).num,正確。
(d) stu->num
stu非指標,無法用->操作符,錯誤。
5樓:
a.c第乙個應該把*p擴起來,要不就弄成*(p。num)了
第二個和第一題比較得知、
c語言結構體成員的引用問題
6樓:
#include "stdio.h"
typedef struct
ex;ex = ;//賦值方式不對,結構體中成員a是指標變數,不能這樣賦值,按照你下面程式的意思應該是ex x=;a是int型變數,a在賦值前已經定義過:int c;
ex *px = &x;
main()
你的**是不正確的
*(px->a)等價於*(*px).a
px->b等價於(*px).b
7樓:匿名使用者
我忘了 ex = ; 這樣的初始化是否合法了,如果合法的話,那就是編譯器做了工作,把
ex = ; 轉換成了 (*ex.a) = 10;ex.b = 99;
8樓:孤松獨海
指標引用任何變數都是這樣引用的 ,規定的
9樓:出家人詞悲
結構體成員運算子。
->指標運算子。
1、如果結構體中的成員均為一般變數(包括結構體變數),則使用「.」,如果成員變數為指標(不管指向什麼,包括結構體),則使用「->」。
2、如果定義了結構體陣列指標,則可分別使用「.」和「->」,區別在於指標帶下標時,以是陣列形式訪問,此時用「.」,如果不帶下標(或使用偏移),此時用「->」。如:
struct myt
myt;
myt *pm;
pm = malloc(sizeof(myt)*100); //定義100個元素的結構體陣列
pm->i=1; //訪問結構體陣列指標中第乙個元素的成員變數i
(pm+49)->i=50; //訪問結構體陣列指標中第50個元素的成員變數i
pm[49].i=50; //功能同上一句
free(pm);
c語言 有以下定義和語句。。對結構體變數成員引用錯誤的是:
c語言結構體成員變數引用,提示未宣告
10樓:油條大巴
#include
#include//函式strcpy需要標頭檔案string.hstruct l
;int main()
;strcpy(a.name,"yang"); //字串賦值,一般用函式strcpy
b.num=103;
//原**b.name=;
strcpy(b.name,"yan");
c.num=230;
//原**c.name=;
strcpy(c.name,"yng");
head=&a;
a.next=&b;
b.next=&c;
//原**c,next=null;
c.next=null;
//p=head; //這個p是大寫 實際上變數p是小寫//原**for(;p=!null;p=p->next) //null是拼寫錯誤, =!是拼寫錯誤
for(p=head ; p != null ; p=p->next )
return 0;}
c語言定義結構體變數,C語言 定義結構體變數
樂跑小子 首先,定義一個結構的一般形式為 struct結構名 成員表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,其形式為 型別說明符 成員名 成員名的命名應符合識別符號的書寫規定。例如 struct stu 在這個結構定義中,結構名為stu,該結構由4個成員組成。...
c語言結構體成員指標初始化問題,C語言結構體成員指標初始化問題
一中只是將name指向 jim 所在的空間,jim 已經存在了,直接將指標指向他即可,而二中是複製乙個 jim 到name所指向的空間,沒有初始化當然不行 第乙個 jim 返回的是乙個位址,是正確的。第二個記憶體分配小了。問題 一 中的student.name並未初始化,為什麼能賦值成功?stu.n...
C語言中連結串列中的結構體指標變數問題求教
定義結構體指標變數時,只分配儲存指標型別需要的空間,比如listnode p 這裡p有給他分配儲存指標的4個位元組的空間。實際上你是要讓p指向一個結構體空間的,這個結構體空間在哪?可以先定義listnode a 然後 p a 這時p指向一個之前申請分配過空間 編譯器設定過其地址和大小,在棧空間存放著...