我想在字符指針上應用<<
移位運算符,並希望在某個位置增加此值。如何在字符指針IN上應用<<運算符和++運算符C
例如:char *p;
在*p
,我想在特定位置上的一些特定位置應用左移*(p+i) << 1
和++
遞增運算符像*(p+i)++
我想在字符指針上應用<<
移位運算符,並希望在某個位置增加此值。如何在字符指針IN上應用<<運算符和++運算符C
例如:char *p;
在*p
,我想在特定位置上的一些特定位置應用左移*(p+i) << 1
和++
遞增運算符像*(p+i)++
我真的不知道我理解你想要做什麼,但如果你想做的事:
*(p+i) = *(p+i) << 1;
*(p+i) = *(p+i) + 1; //++
你可以重寫它們爲:
*(p+i) <<= 1;
*(p+i) += 1;
它看起來像你這樣做窮人芒混淆(而不是加密)
for (char* it=strptr; *it; it++)
{
*it <<= 1;
(*it)++;
}
(假設以空字符串結尾的str ptr)
請注意,如果這是一種編碼方案,如果使用char的高位(因此只支持7位ascii),並且解碼時需要特別注意127輸入值,則信息丟失(不可逆) 。如果你堅持你可以做。然而,你不能合法使用it++
結合,因爲它會發生未定義行爲按照C++/C標準
有什麼問題嗎?你展示它是如何完成的。另外,如果這是你正在做的事情,請避開凱撒·塞帕斯。他們很無用:) – sehe