簡體   English   中英

訪問嵌套體中內部結構的元素

[英]access elements of inner structure in a nested body

我們可以不訪問內部結構的元素嗎?(在這種情況下是部門 )。

當我嘗試初始化dept結構的值時,我得到了最后提到的錯誤。

#include <stdio.h>
#include <string.h>
struct employe
{
    char name[10];
    int i;
    struct dept
    {
        char name[10];
        int uniq_num;
    }d;
}e;
int main()
{
strcpy(d.name, "CS");
strcpy(e.d.name, "Computer Science");
printf("The dept name: %s \n", d.name);
printf("Employee dept name: %s \n", e.d.name);
getchar();
return 0;
}

錯誤 -

"example9.c", line 18: undefined symbol: d
"example9.c", line 18: warning: left operand of "." must be struct/union object
"example9.c", line 18: cannot access member of non-struct/union object
"example9.c", line 20: warning: left operand of "." must be struct/union object
"example9.c", line 20: cannot access member of non-struct/union object

您(錯誤地?)在例如第一次strcpy調用中使用了d.name而不是e.name

當您執行edname時,可以使用正確的語法在一次strcpyprintf調用中訪問嵌套結構。

正如我所提到的,如果不使用/ to結構的對象/指針,則無法訪問內部元素。 就像訪問name變量一樣,你必須使用e.name,類似於訪問d變量,你必須要使用ed

最好分別定義結構:

struct dept
{
    char name[10];
    int uniq_num;
};

struct employe
{
    char name[10];
    int i;
    struct dept d;
}e;

然后你可以用edname,eduniq_num訪問e結構的d個成員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM