在C語言中,.和->都是用來訪問結(jié)構(gòu)體和聯(lián)合體成員的運算符。但是它們之間有著明顯的區(qū)別。本文將詳細(xì)介紹.和->的區(qū)別。
1. .運算符
.運算符是用來訪問結(jié)構(gòu)體變量中的成員的。它的使用方式是結(jié)構(gòu)體變量名.成員名。例如
```t {ame[20];
};t stu;
stu.age = 18;
在上面的代碼中,我們使用了.運算符來給stu結(jié)構(gòu)體變量的age成員賦值。
2. ->運算符
->運算符是用來訪問指向結(jié)構(gòu)體的指針變量中的成員的。它的使用方式是指針變量名->成員名。例如
```t {ame[20];
};t p;
p = &stu;
p->age = 18;
在上面的代碼中,我們使用了->運算符來給p指針變量指向的結(jié)構(gòu)體變量的age成員賦值。
3. 區(qū)別
.運算符只能用于結(jié)構(gòu)體變量,而->運算符只能用于指向結(jié)構(gòu)體的指針變量。
.運算符直接訪問結(jié)構(gòu)體變量中的成員,而->運算符是先通過指針找到結(jié)構(gòu)體變量,再訪問結(jié)構(gòu)體變量中的成員。
4. 示例
下面的示例代碼演示了.和->的區(qū)別
```clude
t {ame[20];
tain() {t", 18, 90};t p = &stu;
tfameame); stu.age); stu.score);
tfameame); p->age); p->score);
輸出結(jié)果為
```ame
stu.age = 18
stu.score = 90.00ame
p->age = 18
p->score = 90.00
可以看到,通過.訪問結(jié)構(gòu)體變量成員和通過->訪問指向結(jié)構(gòu)體的指針變量成員得到的結(jié)果是一樣的。
.運算符和->運算符都是用來訪問結(jié)構(gòu)體和聯(lián)合體成員的運算符。.運算符只能用于結(jié)構(gòu)體變量,而->運算符只能用于指向結(jié)構(gòu)體的指針變量。.運算符直接訪問結(jié)構(gòu)體變量中的成員,而->運算符是先通過指針找到結(jié)構(gòu)體變量,再訪問結(jié)構(gòu)體變量中的成員。