下面的程序來自Gayle Laakmann McDowell編寫的「Cracking the coding interview」一書。無法將類型'char *'隱式轉換爲'bool'
原始代碼是用C寫
這裏是原代碼:
void reverse(char *str) {
char * end = str;
char tmp;
if (str) {
while (*end) {
++end;
}
--end;
while (str < end) {
tmp = *str;
*str++ = *end;
*end-- = tmp;
}
}
}
我想它轉換成C#。經過谷歌研究和玩代碼,下面是我的。我是一個初學者,真的陷入困境。我沒有得到我期待的價值。有人能告訴我我做錯了什麼嗎?
class Program
{
unsafe void reverse(char *str)
{
char* end = str;
char tmp;
if (str) // Cannot implicitly convert type 'char*' to 'bool'
{
while(*end) // Cannot implicitly convert type 'char*' to 'bool'
{
++end;
}
--end;
while(str < end)
{
tmp = *str;
*str += *end;
*end -= tmp;
}
}
}
public static void Main(string[] args)
{
}
}
AC#beginner並已經試圖做不安全的代碼片段? – RvdK 2012-04-06 11:26:37
如果你是初學者,你爲什麼要搞亂指針和不安全的代碼?首先了解基礎知識! – 2012-04-06 11:26:43
我不認爲這是告訴別人「不要做點什麼!」是一種很好的幫助方式。 – llj098 2012-04-06 11:36:05