struct result {
int number;
int length;
};
struct result findLongestSeq(int intarray[], int size) {
result->number // undefined symbol
}
如何訪問功能findLongestSeq內部結構的結果?如何訪問結構?
感謝
struct result {
int number;
int length;
};
struct result findLongestSeq(int intarray[], int size) {
result->number // undefined symbol
}
如何訪問功能findLongestSeq內部結構的結果?如何訪問結構?
感謝
struct result {
int number;
int length;
};
struct result findLongestSeq(int intarray[], int size) {
struct result result;
result.number = 0;
result.length = 42;
return result;
}
如果你正在處理struct result foo
那麼你通過foo.number
訪問其成員。 如果您正在處理指向foo的指針(struct result *foo
),那麼您通過foo->number
訪問其成員。
如果你是通過
struct result *result = (struct result *)malloc(sizeof (struct result));
手動分配的結果是結構然後,你必須通過result->number
訪問其成員(並會負責釋放它一旦不再使用)。
進一步,我寧願用這個更好的可讀性的原因:
typedef struct {
int number;
int length;
} ResultStruct;
這樣你就可以使用ResultStruct result;
,而不是冗餘和詳細struct result result;
。
您有隻需輸入
struct result {
int number;
int length;
};
你只定義一個名爲結果的結構實際上是如何的模樣,什麼部位是由即要記住。這是一個通用的定義,但是你有這種類型的變量。
爲了這個結構的存儲數據必須由
struct result myResult;
創建一個變量或者無論你怎麼稱呼它。在這一點上,你可以利用myResult.number
你可能打算'結構導致的結果訪問此結構的成員;' – Erik 2011-04-12 12:27:00
哎喲,肯定我做到了。謝謝!這就是爲什麼我傾向於鍵入我的結構。 :P – Regexident 2011-04-12 12:31:10