一段異常ew的代碼,?#include<stdio.h>#include<string.h>int?main(?void?){????char*?s="1101";//13????char*?p=s+strlen(s);??????unsigned?i=0;????unsigned?num=0;????while?(p-->s)????????num^=!(*p^'1')<<i++;????printf("----");????printf("%u\n",num);????return?0;}這個(gè)是把二進(jìn)制轉(zhuǎn)換為10進(jìn)制 的代碼。。。。。。。。。。。。。至于為什么寫成這個(gè)樣子,不是我寫滴。。。為了考我這樣不會(huì)指針的人類吧。首先?char*?p=s+strlen(s);為什么p指針的內(nèi)容和s指針的內(nèi)容就一樣了,(指針學(xué)得很不好求解答下)但是用編譯器輸出p,得到的是null,可以理解為這個(gè)時(shí)候的p指向的是字符串結(jié)束標(biāo)志'\0'么,然后while?(p-->s)其實(shí)是while((p--)>s)【這樣分開稍微好理解一點(diǎn),】這里,p--怎么理解呢,這個(gè)字符串p倒著輸出么。跪求解答啊,后面涉及位運(yùn)算的,大神隨意,那個(gè)不是很想知道。謝謝(如果有人的話,應(yīng)該有吧)
1 回答

馮寶寶
TA貢獻(xiàn)31條經(jīng)驗(yàn) 獲得超8個(gè)贊
指針沒(méi)有學(xué)好,痛苦,因?yàn)樽址驼麛?shù)相加,偏移,指針,,,,,,去學(xué)指針吧,人類們
- 1 回答
- 1 關(guān)注
- 1248 瀏覽
添加回答
舉報(bào)
0/150
提交
取消