因為最近我在學用c和gtk+來寫程式..但是現在碰到一個我一直想不懂的問題,下面是我寫的程式碼
- 代碼: 選擇全部
#include <gtk/gtk.h>
typedef struct _cstring Cstring;
struct _cstring
{
GString *st1;
GString *st2;
};
int main(int argc, char** argv)
{
Cstring str;
Cstring *sstr;
sstr=&str;
str.st1=g_string_new("str1");
str.st2=g_string_new("str2");
g_print("%s,%s\n",str.st1->str,str.st2->str);
sstr->st1=g_string_new("str3");
sstr->st2=g_string_new("str4");
g_print("%s,%s\n",sstr->st1->str,sstr->st2->str);
return 0;
}
在這個程式中我寫了個struct並設定為變數Cstring,那在程式中要使用時是用Cstring str來宣告使用,但是如果是宣告成指標如Cstring *sstr時就必須用sstr=&str讓sstr取得位址後才能使用這個指標變數,但是我想不透的是為什麼在gtk+和homebank這些也是用c所寫的程式可以不用取得位址這個動作就可以直接使用所以設定的struct 指標變數了......
有人可以替小弟解惑嗎....謝謝