当前位置:  技术问答>linux和unix

为什么是这个结果呢?

    来源: 互联网  发布时间:2017-01-09

    本文导语:  /* example1.c */ #include  #include  #include  int main() {   int i = 0x12345678;  /* 以低位字节优先方式存储,即0x78 0x56 0x34 0x12 */   int *p = &i;   char h = *((char *)p);  /* 将i的高位字节赋给h */   printf("i = 0x%xn",...

/* example1.c */
#include 
#include 
#include 
int main()
{
  int i = 0x12345678;  /* 以低位字节优先方式存储,即0x78 0x56 0x34 0x12 */
  int *p = &i;
  char h = *((char *)p);  /* 将i的高位字节赋给h */
  printf("i = 0x%xn", i);
  printf("h = 0x%xn", h);
  int j = htonl(i);  /* 转换为以高位字节优先方式,即0x12 0x34 0x56 0x78 */
  printf("j = 0x%xn", j);
  return 0;
}

运行结果是:
i=0x12345678
h=0x78
j=0x78563412

对h=0x78表示不解
char h = *((char *)p)是什么意思啊?
还有%x是哪种类型的通配符啊?

|
对h=0x78表示不解
-->h取得的是存放i变量的那个地址的最低字节,你在上面已经写出了i变量的排序了,当然是0x78。

char h = *((char *)p)是什么意思啊?
-->p指向i变量的那个地址(此时p是指向整型的指针),然后将p强制转换成指向char的指针,再取这个指针的值,赋给h。h就是i变量最低字节的值了。

还有%x是哪种类型的通配符啊?
-->%x表示输出16进制数,其它如%d、%f、%u这些,请用google搜索printf。

如果对上面的字节顺序不了解,调试程序时,查看一下i变量那个地址数据就清楚了。

一家之言,错误之处,请见谅,并指正。

|
char h = *((char *)p)是什么意思啊

取指针p内容里的一个字节,p是指向i = 0x12345678的一个指针。
因为是x86,所以是小字节序,最低有效位存的是0x78.

%x是十六进制输出。


|
int *p = &i 是什么意思呢?
-->看C语言的书,里面有说明的。大意是指声明一个int类型的指针p,指向i的地址。

int* p
int *p
int * p
int    *   p
。。。
无区别

*p表示取指针的值,就是取值,没别的意思。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 将ResultSet结果集中的记录映射到Map对象中
  • linux 命令执行结束后,想查看结果,但部分结果已经被覆盖,如何查看?
  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • 请教:在用lspci命令显示结果中,每一行结果结尾有(rev xx)之类字符,这个代表什么意思?
  • java中的数据库结果集可以被赋值吗,可以通过结果集的方法来更新数据库字段吗?
  • 为什么jsp文件已经改动,但运行结果却还是改动前的结果?
  • 为何makefile中执行的结果和直接在命令行中执行结果不一致?
  • 请问JDBC中返回结果参数的存储过程{?=call 过程名(?,?,...)}返回的结果如何得到?
  • top与ps命令输出结果差异以及top结果的重定向
  • shell中关于sql查询结果的判断?
  • 可以有办法把多个结果集合并吗
  • 查询结果的分页显示望大家指点。
  • 从数据库检索出的中间结果放那里
  • 如何将命令的执行结果在屏幕输出的同时保存到文件
  • QT中QProcess::execute的执行的结果的问题?
  • 用Shell执行SQL得到的结果是乱码.
  • linux脚本中命令运行结果判断
  • 关于查询结果集异常错误的问题,谢谢帮忙!
  • 如何得到结果集中的纪录数
  • 命令结果的过滤显示
  • 怎样把搜索的结果显示在当前窗口里?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3