C語言結構體選單問題,C語言結構體實現多級選單的困惑,請高手解答

2022-12-23 08:51:23 字數 3474 閱讀 4584

1樓:匿名使用者

首先struct menuitem (*menupoint) = main_menu_1f; 這沒錯,但一般不會這麼用,加括號只是在必要時,如定義行指標獲函式指標時(typedef重定義型別更好),至於為什麼會出現error c230: 'menuitem': unknown struct/union/enum tag 可能是因為你struct menuitem 前多了乙個分號,至少你發在這上面的程式中有這樣乙個雙引號。

另外,我不知道你為什麼要在標頭檔案中定義變數?? 如null,main_menu_1f,settime_menu_2f,如果該標頭檔案被多個原始檔包好,這不就會導致重複定義的鏈結錯誤嗎???

2樓:

「struct menuitem前面 和 settime_menu_2f[2];」 後面的那個「要去掉。

3樓:

(*menupoint) 沒定義

c語言結構體實現多級選單的困惑,請高手解答 5

4樓:

code keypad(改為code_keypad) 除非他倆不是乙個整體!

-----依林玫***

5樓:匿名使用者

missing ';' before 'code' :在code前面少了乙個分號

但看你**是沒有問題的。

應該是你在標頭檔案裡的巨集定義多了個分號 或者少了個分號

6樓:

code keypad中間多了個空格

c語言裡乙個關於子選單結構體儲存的問題

7樓:匿名使用者

給個例子你看一下就懂了

#include

struct

t[2]=,};

void main()

8樓:匿名使用者

while之後的完全搞不清楚目的,這樣寫必定會死迴圈,因為fp得到檔案指標且非空,而迴圈中又沒有改動fp的值,fp會一直非空而無法退出迴圈。所以說到底是要實現什麼

c語言的結構體問題

9樓:匿名使用者

struct cd

; 這裡的cd是個型別,相當於char int 等,不是變數名,只有變數名才能引用資料元素,修改如下:

struct cd

st_cd ; //定義乙個變數st_cdfor(int i=0;i

}你的程式問題太多,好好學習一下基礎的內容吧,汗。。。

10樓:雨棟炎

我試了一下,完全沒有問題,非常正常啊!

--------------

你改成score[3],意義完全就不一樣了啊,原來score是乙個整型的量,後來就成了乙個陣列名,是乙個整型常量指標,你的輸入輸出需要進行相應的改變:

struct student

stu;

void main()

11樓:卿夏旭

詳細修改:

#include //標頭檔案

struct cd //結構體

;int main()  //主函式

{int b;

char a;

int i; //在c語言中,所有的宣告語句必須放在最前面,因此把i提到前面來宣告

struct cd cd; //宣告乙個結構體變數printf("請輸入有幾種菜目:");

scanf("%d", &b); //增加乙個b的輸入for(i=0; i

c語言結構體問題

c語言結構體成員的引用問題

12樓:

#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

13樓:匿名使用者

我忘了 ex = ; 這樣的初始化是否合法了,如果合法的話,那就是編譯器做了工作,把

ex = ; 轉換成了 (*ex.a) = 10;ex.b = 99;

14樓:孤松獨海

指標引用任何變數都是這樣引用的 ,規定的

15樓:出家人詞悲

結構體成員運算子。

->指標運算子。

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語言結構體問題,

16樓:一頓能吃五碗飯

c++允許使用者根據需要自己宣告一些型別,使用者可以自己宣告的型別還有結構體型別(structure)、共用體型別(union)、列舉型別(enumeration)、類型別(class )等,這些統稱為使用者自定義型別(user-defined type,udt)。

struct student_type,你已經使用結構體型別已經定義了student_type這樣乙個自定義型別,

在下面**中就可以直接單獨使用student_type來定義結構體變數。

在c++裡很簡單,直接

struct student

;於是就定義了結構體型別student,宣告變數時直接student stu2;

c語言中使用:

typedef struct student

在宣告變數的時候:可以直接student stu1;(但是沒有typedef就必須用struct student stu1;來宣告)

滿意請採納,不懂請追問。

17樓:匿名使用者

struct student_type student1,這個是c語言的寫法;

student_type student1,這是c++的寫法。

c語言結構體成員指標初始化問題,C語言結構體成員指標初始化問題

一中只是將name指向 jim 所在的空間,jim 已經存在了,直接將指標指向他即可,而二中是複製乙個 jim 到name所指向的空間,沒有初始化當然不行 第乙個 jim 返回的是乙個位址,是正確的。第二個記憶體分配小了。問題 一 中的student.name並未初始化,為什麼能賦值成功?stu.n...

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

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

c語言結構體定義了,C語言結構體 定義了typedef struct int key element 能否在main函式裡定義element x

bai。太強大了。翻譯過du來是這樣zhi的。定義 型別dao 型別名。簡單說。int是整型內。容那element 就相當於int a中的a,struct相當於int。理解麼?不理解。換個,陣列名。就是element,陣列就是 struct key就是陣列裡面的 i。這樣該懂了吧。沒有名稱的結構體就...