大小端存储复习题

来源:互联网 发布:mac清理卸载残留文件 编辑:程序博客网 时间:2024/05/04 04:02

写出下列程序的输出结果(Win32):

#include <stdio.h>int main(){unsigned long res = 0;unsigned long array [] = {0x01020304,0x05060708};char *p = (char*)&array[0];p += 2;res = (unsigned long)*p;printf("res = 0x%08x\n",res);//0x00000002res = *((unsigned long *)p); printf("res = 0x%08x\n",res);//0x07080102} 


另附 printf函数格式参数:

1.调用格式为  printf("<格式化字符串>", <参量表>); 
  其中格式化字符串包括两部分内容一部分是正常字符这些字符将按原样输出另一部分是格式化规定字符"%"开始后跟一个或几个规定字符用来确定输出内容格式。参量表是需要输出的一系列参数其个数必须与格式化字符串所说明的输出参数个数一样多各参数之间用","分开且顺序一一对应否则将会出现意想不到的错误。

2.格式化字符

%d 十进制有符号整数 
%u 
十进制无符号整数 
%f 
浮点数 
%s 
字符串 
%c 
单个字符 
%p 
指针的值 
%e 
指数形式的浮点数 
%x, %X 
无符号以十六进制表示的整数 
%0 
无符号以八进制表示的整数 
%g 
自动选择合适的表示法 
说明
(1). 
可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数不够3位右对齐。%9.2f 表示输出场宽为9的浮点数其中小数位为2, 整数位为6, 小数点占一位不够9位右对齐。%8s 表示输出8个字符的字符串不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽将按其实际长度输出。 但对浮点数若整数部分位数超过了说明的整数位宽度将按实际整数位输出若小数部分位数超过了说明的小数位宽度则按说明的宽度以四舍五入输出。若想在输出值前加一些0, 就应在场宽项前加个0 例如: %04d 表示在输出一个小于4位的数值时将在前面补0使其总宽度4位。如果用浮点数表示字符或整型量的输出格式小数点后的数字代表最大宽度小数点前的数字代表最小宽度。例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 9个字符以后的内容将被删除。 
(2). 
可以在"%"和字母之间加小写字母l, 表示输出的是长型数。例如: %ld 表示输出long整数, %lf 表示输出double浮点数。
(3). 
可以控制输出左对齐或右对齐"%"和字母之间加入一个"-" 号可说明输出为左对齐否则为右对齐例如: %-7d 表示输出7位整数左对齐,%-10s 表示输出10个字符左对齐。


3. 一些特殊规定字符 
\n换行
\f
清屏并换页 
\r
回车 
\t Tab
 
\xhh
表示一个ASCII码用16进表示,
其中hh1216进制数



0 0
原创粉丝点击