標題:
*(unsigned char *)&s 結構體問題
[打印本頁]
作者:
1314love
時間:
2022-8-11 13:18
標題:
*(unsigned char *)&s 結構體問題
struct test_s
{
unsigned char a;
int b;
};
struct test_s s;
s.a='a';
printf("a=%c\n",s.a);
printf("a=%c\n",*(unsigned char *)&s); //兩個printf打印的結果都是一樣的
這里 &s為 struct test_s * 類型指針
請問大伙,為什么&s是struct test_s * 類型指針,它不是struct test_s類型嗎?
作者:
的花朵
時間:
2022-8-11 16:31
指針才指向地址,&運算符在變量前跟變量結合表示取地址,可以想一下,如果&s還是struct test_s類型,那么&運算符有何意義?
作者:
天ノ憶
時間:
2022-8-11 17:23
s是test_s類型的結構體,&s是s的地址,指針是指向s的地址,你連指針的概念都沒弄懂
作者:
Hephaestus
時間:
2022-8-11 17:43
能問出“為什么&s是struct test_s * 類型指針”的,回頭看教科書吧,指望論壇有人寫幾千個字給你說明是不現(xiàn)實的。
作者:
jxcrgt35
時間:
2022-8-11 19:16
結構體的首地址也是結構體第一個數(shù)據(jù)的地址,所以一樣的
作者:
Y_G_G
時間:
2022-8-12 06:49
你的另外幾個問題是定時器的高8位和低8位的問題和8位機跟32位機的區(qū)別
由此看來,我不覺得你能操控指針和結構體
新手更應該做的是流水燈或者定時器閃燈之類的
程序從10行代碼,慢慢的增加到11行,然后是12行,然后慢慢的到100行,一千行,再然后,技術到家了,代碼就開始慢慢的減少了,因為你可能學會了更高級的函數(shù)或者算法
而不是像你這樣,跳著學
作者:
wufa1986
時間:
2022-8-12 08:18
取地址,很好理解吧
作者:
HUNTER2022
時間:
2022-8-12 10:13
這是個C語言的基本問題。指針包括兩個要素:地址數(shù)值、該地址的數(shù)據(jù)類型。
S是個結構體類型,那么&S自然就是該結構體類型的指針,其地址數(shù)值為結構體數(shù)據(jù)的入口地址。在你的語句中用強制類型轉換,把它轉換成了char類型指針。之后再取地址內(nèi)容,自然取的就是char類型。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1