一个移位的问题,怎么不明白呢?
char *str = (char *)malloc(100);
memset(str, 0, 100);
fflush(stdin);
scanf("%s", str);
*(unsigned short*)(str+strlen(str)-1) = (*(str+strlen(str)-1))<<8;
例如输入:hello
那么在执行完最后一句之后,在内存中看到的str是:hell'\0'o
我怎么感觉应该是hell'\0''\0'啊,最后一句实现了不用中间变量交换字符串的最后一个字符与'\0'位置的功能