不太理解这段代码

南吴小平 2011-04-06 07:13:14
#include<string.h>
#define MAXNUM 65536
#include<iostream>

using namespace std;

char info[MAXNUM]="\0";//定义一个长为65536空字符数组。
__int64 num=0;
int i;

void input()//输入函数
{
printf("Please enter the origin information:\n");
gets(info);
num=strlen(info);//取输入字符的字
}



int main()
{


input();
printf("%d\n",num);
for(i=0;i<=10;i++)
printf("%d\n",info[i]);
__int64 tmp=num*8;
memmove(info+num,(char*) &tmp,sizeof(tmp));
for(i=0;i<=10;i++)
printf("%d\n",info[i]);
}
...全文
131 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
direction917 2011-04-07
  • 打赏
  • 举报
回复
printf("%d\n",info[i]);这样自然就出来了吧

zuiyuezhou888 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 a15862986217 的回复:]
引用 6 楼 zuiyuezhou888 的回复:
你输入的1是按字符保存的 1对应的ascii码为49;
如果你定义一个int型的数组来保存用户的输入,那么你输入1将输出1

还有啊(char*) &tmp是什么意思?
[/Quote]
将tmp类型转化为char *;
——int64占8个字节的int
默认的int占4个字节
南吴小平 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bluesky12312388 的回复:]
引用 8 楼 a15862986217 的回复:

引用 2 楼 a15862986217 的回复:
看了这段代码后,我就郁闷了...这ASC值怎么来的。

char*) &amp;tmp是什么意思啊?

你得去补基础了。
[/Quote]
第一次遇到_int64的定义,感觉不知道是什么
南吴小平 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bluesky12312388 的回复:]
引用 8 楼 a15862986217 的回复:

引用 2 楼 a15862986217 的回复:
看了这段代码后,我就郁闷了...这ASC值怎么来的。

char*) &amp;tmp是什么意思啊?

你得去补基础了。
[/Quote]
bluesky12312388 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 a15862986217 的回复:]

引用 2 楼 a15862986217 的回复:
看了这段代码后,我就郁闷了...这ASC值怎么来的。

char*) &tmp是什么意思啊?
[/Quote]
你得去补基础了。
南吴小平 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 a15862986217 的回复:]
看了这段代码后,我就郁闷了...这ASC值怎么来的。
[/Quote]
char*) &tmp是什么意思啊?
南吴小平 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zuiyuezhou888 的回复:]
你输入的1是按字符保存的 1对应的ascii码为49;
如果你定义一个int型的数组来保存用户的输入,那么你输入1将输出1
[/Quote]
还有啊(char*) &tmp是什么意思?
zuiyuezhou888 2011-04-06
  • 打赏
  • 举报
回复
你输入的1是按字符保存的 1对应的ascii码为49;
如果你定义一个int型的数组来保存用户的输入,那么你输入1将输出1
hengshan 2011-04-06
  • 打赏
  • 举报
回复
你用键盘输入的都是字符,字符在计算机中是用 asc表示的。
字符1的asc值是49,而你用下面的方法打印,即%d表示输出整数,所以只能打印49,如果你用%c,那么输出是字符1
printf("%d\n",info[i]);

pengzhixi 2011-04-06
  • 打赏
  • 举报
回复
info[0]是1ASC值。。。。这49是怎么来的

规定。
Ulfsaar 2011-04-06
  • 打赏
  • 举报
回复
printf("%d\n",info[i]);
info[i]里面存的是字符的ASCII码
你用%d输出,就相当于
int a = info[i];
printf("%d\n", a);
南吴小平 2011-04-06
  • 打赏
  • 举报
回复
看了这段代码后,我就郁闷了...这ASC值怎么来的。
南吴小平 2011-04-06
  • 打赏
  • 举报
回复
假如输入的是:1;
info[0]是1ASC值。。。。这49是怎么来的

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧