| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1683 人关注过本帖
标题:printf("计算机操作问题");
只看楼主 加入收藏
震中地带
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:171
专家分:359
注 册:2012-3-26
收藏
得分:0 
回复 9楼 embed_xuel
懂了
2012-07-05 19:00
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:6 
可以用指向整形的指针指向char,只要你确定需要这么做,加个强制转换,编译器都不会报警告;
2+3具体实现你可以看看汇编指令的效果,对于立即数,基本上在指令和寄存器中完成操作;

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-07-05 19:25
ly2222
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:217
专家分:618
注 册:2012-6-15
收藏
得分:6 
新人刚学没多久,解答不了你的问题,求分~~~~~~~~~~~~~
2012-07-05 21:16
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
具体怎么实现的要学汇编和计算机原理了

至于指针 可以理解为一种访问内存的方法 C把它抽象成了指针 可以这么说罢
2012-07-05 21:24
阿鞠尼
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:首尔
等 级:蒙面侠
威 望:5
帖 子:1467
专家分:4442
注 册:2012-5-30
收藏
得分:6 
震中兄提出的问题真是有水平 我还从来没想过这些 真是惭愧 (不用给我分 真的不用)

喜欢睡觉 却经常熬夜
2012-07-05 22:06
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:6 
船长来接分了。。。。
都涉及到微机运作的原理了。。。。。太高深了。。。。。。只有C语言基础的人进来看看。。。

Edsger Dijkstra:算法+数据结构=程序
2012-07-05 23:00
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:6 
1、指针在内存中的存储方式和其它变量完全一样,只是存储的内容意义不同(表示一个地址)。
    指针的操作方式对应于汇编中的基址+变址寻址方式。
    指针的类型是给编译器看的而非机器,所以理论上各种指针类型完全可以相互转换,实际中经常用void *型指针作为通过指针来操作不同类型的指针(如qsort的比较函数指针的参数)。
2、大致是这样的
    mov ax, 2
    add ax, 3
    加法运算符(及各种运算符)由编译器解析成相应的机器指令。

建议多少学一点汇编,对理解计算机的运行方式是很有帮助的。

重剑无锋,大巧不工
2012-07-06 00:11
随风飘荡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:208
专家分:598
注 册:2011-9-9
收藏
得分:6 
大能就是不一样,有条有理。
2012-07-06 00:14
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:6 
指针变量存的也是值,跟普通的变量存的值无异。

指针变量也有大小,一般占4个字节的空间。不管是void *, char *, int *。

你完全可以把字符串首地址赋给整形指针,前提是你的编译器能编译的过去,然后你打印该整形指针,得到的值与你机器大小端的设定相关。
2012-07-06 10:25
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用beyondyf在2012-7-6 00:11:35的发言:

1、指针在内存中的存储方式和其它变量完全一样,只是存储的内容意义不同(表示一个地址)。
    指针的操作方式对应于汇编中的基址+变址寻址方式。
    指针的类型是给编译器看的而非机器,所以理论上各种指针类型完全可以相互转换,实际中经常用void *型指针作为通过指针来操作不同类型的指针(如qsort的比较函数指针的参数)。
2、大致是这样的
    mov ax, 2
    add ax, 3
    加法运算符(及各种运算符)由编译器解析成相应的机器指令。

建议多少学一点汇编,对理解计算机的运行方式是很有帮助的。


如果是细节的话有这么几个

首先 32位的x86 CPU的话会用eax 64位用的是rax

一般这种编译时可以决定的数 开了优化的编译时就变成一个数了 不会编译到目标程序里面算 一般是这样


2012-07-06 10:37
快速回复:printf("计算机操作问题");
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059384 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved