快速提問如何爲變量賦值數組元素的值。試圖確保我的代碼使用最小的內存。C變量賦值給數組元素
如果我有一個預定義的結構體數組,並且想要創建對數組中一個元素的引用,那麼如何創建該變量以便通過引用傳遞而不是值?我搜索了這個,但也許我的搜索字符串不是它需要的。
例如
#myfile.h
typedef struct {
uint8_t abba;
uint8_t zabba;
} mystruct;
extern mystruct mystructs[2];
#myfile.c
mystruct mystructs[2] = {
{.abba=0,.zabba=1},
{.abba=2,.zabba=3}
};
void myfunc1() {
mystruct ms1 = mystructs[1];
printf("%d", ms1.abba);
ms1.zabba = 5;
}
void myfunc2() {
printf("%d", mystructs[1].abba);
mystructs[1].zabba = 5;
}
所以我的問題如下: 當我創建myfunc1 MS1,它只是給mystructs一個參考文獻[1]?或者它將元素複製到ms1中?
myfunc1和myfunc2會在內存使用情況下產生相同的結果嗎?
將ms1.zabba = 5實際更新mystructs [1] .zabba?
如果我能接受Peter Schneider和Quentin的答案。 Peter詳細介紹了它的工作原理,Quentin給出了創建ms1作爲指針的例子。 – user3817250