[英]Confusion with C syntax (relating to pointer and ampersand)
通過這個網站http://c.learncodethehardway.org/book/ex17.html ,我現在正在學習C編程,現在我試圖理解那里寫的代碼。 因此,我知道基本指針以及與之相關的所有東西,至少我是這樣認為的。
我從上面的URL想到了以下代碼(下面的代碼已簡化):
void Database_get(struct Connection *conn, int id)
{
struct Address *addr = &conn->db->rows[id];
}
上面代碼的右側表示&(conn->db->rows[id])
或(&conn)->db->rows[id]
嗎? 從我的角度來看,它意味着&(conn->db->rows[id])
。 抱歉,這是基本的東西。 仍在學習中。 已經嘗試向Google投放這些東西,但似乎找不到。
提前致謝。
您要查找的概念是運算符優先級 。 在C和C ++中, ->
和[]
優先級高於&
。 此外, ->
和[]
具有從左到右的關聯性,因此按以下順序解析:
&(((conn->db)->rows)[id])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.