這裏是它的完整代碼關於程序中指針的問題。 [C]
#include <stdio.h>
#include <string.h>
void reverse_string(unsigned short *buf, int length)
{
int i;
unsigned short temp;
for (i = 0; i < length/2; i++)
{
temp = buf[i];
buf[i] = buf[length - i - 1];
buf[length - i - 1] = temp;
}
}
int main(int argc, char **argv)
{
unsigned short* tmp = (unsigned short*)argv[1];
reverse_string(tmp,strlen(argv[1])/2);
printf("%s",argv[1]);
return 0;
}
正如你所看到的,在主,我們有
unsigned short* tmp = (unsigned short*)argv[1];
ARENT指針應該指向「地址」的變量?上面的不是(使用&符號)。然而該程序按預期工作。
這是爲什麼?
這部分是什麼意思?
(unsigned short*)argv[1]
argc和argv定義參數的數量和程序命令中參數的值。這裏argv的第二個元素(一個char指針)被轉換爲一個無符號的短指針。 –