一个移位的问题,怎么不明白呢?
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'位置的功能
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'位置的功能
...全文
相关推荐
小学生数学知识儿歌MicrosoftWord文档.pdf
牢记在心不忘记。5. 除法是小数的除法:除法是小数,移位要记住。移动小数点,使它变整数,除数移几位,被除数同样多,数位如不够,添 0 来补位。6.
stc89c52rc串口通信例程.c
STC89C52RC串口收发例程,可直接拿来用,串口通信,例程简单,很容易看明白。串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉
明明白白你的“芯”——浅谈CPU(中).pdf
《明明白白你的“芯”——浅谈CPU(中)》这篇文章主要探讨了CPU的工作原理和基本构成,其中重点介绍了CPU的三个核心组成部分:控制单元、执行单元和存储单元。
明明白白学C#上册(大学霸)
- 如果在学习过程中遇到问题,可以通过电子邮件寻求帮助。#### 五、第0章:准备工作本章节主要介绍了C#的基本概念及其应用领域,并提供了学习C#的基础准备指南。##### 5.1 C#语言是什么?
你必须知道的495个C语言问题(PDF)
目录1 声明和初始化11.1 我如何决定使用那种整数类型? . . . . . . . . . . . . . . . . . . . 11.2 64 位机上的64 位类型是什么样的? . .


