var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-333696-1']); _gaq.push(['_trackPageview']); _gaq.push(['_trackPageLoadTime']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
  • 2008年09月05日

    指针常量和常量指针

    分类:

    指针常量: Type * const pointer ;

    常量指针: const Type *pointer ;

     

    指针常量(char* constchar const* p)和常量指针(const char*,不存在const* char它无法通过编译)

    从右向左读(* 读成 pointer to)

    char * const p;        //读作p is a const pointer to char

    const char * p;        //读作 p is a pointer to const char

    char const * p;       // const char * p;读法一样,  C++标准规定const关键字放在类型或变量名之前等价)

     

    l  你能通过指针常量读写字符,但指针自身是一个常量,你无法改变它;而且在申明同时你必须用一个常量数值初始化它。

    l  你能通过常量指针字符,但你无法改变它;但指针自身能被改变。

     

    对一个多字节对象,在不同计算机系统中,其字节存储排列顺序不一样。有两种排列:一种称为little endian,即在存储器中从最低字节到最高字节顺序存储对象,如IntelAMD64;另一种排列规则称为big endian,在存储器中从最高字节到最低字节顺序存储对象,和平常的书写习惯一致,如Solaris

    Little Endian中汇编指令处理所有格式字节数几乎相同,同时因为地址偏移和字节数为一对一的关系(偏移0是字节0),因而相对容易写多精度数学程序;Big Endian中首先读高位字节,通过查看偏移0处字节通常你能验证此数是正数还是复数,你不需知道该数多长也不需要跳过任何字节查找字节包含的符号信息,数字也已它们被打印出的顺序存储,因此二进制到十进制程序特别有效。

    分享到:

    历史上的今天:

    窗口元素层级识别 2009年09月05日