Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / C指针基础

任何的数据类型我们都可以把它当成个模子,然后可成各种类型的数据;任何模子都又其特定的大小。int *p;用sizeof测试下,sizeof(p) 或者sizeof(int)是4byte,于是可以这样定义:一个int类型的模子在内存上刻出大小为4字节的空间,然后把4个字节大小空间命名为p。同时限定这4字节连续空间只能存储某个内存地址,即使你存入别的任何数据,都将被当做地址处理,而且这个内存地址开始的连续4字节上只能存储某个int数据。我们把p称为指针变量,p里存储的内存地址处的内存称为p指向的内存。int *p = NULL    and    *p = NULL第一个是初始化。初始的是什么呢,就是将p本身的地址初始为0.*p = NULL是将p指向的内容初始为0.double *p = NULL;
 printf("%d ",sizeof(p)); //始终是4byte,指针变量本身的空间
 int *pt = NULL;
 printf("%ox ",pt);  //通过编译器查看pt的值为ox
 int i = 10;
 int *pp = &i;
 printf("%d ",i);
 *pp = NULL;
 printf("%d",i);  //最后i的值变为0再看:int *p;*p = NULL;定义了一个指针变量p,但是p本身的地址不为人知,也许就是非法的,作用后续的也可能会报错。改进:int i = 20;int *p = &i;*p = NULL;将数值存储到指定的内存地址:假设将数值0x100存储到地址为0x12ff7c上,那么这个地址可以这样得来,:我可以随意定义个变量,比如int i;然后取地址,那么这个地址肯定是可以访问的。int *p = (int *)0x12ff7c;*p = 0x100;也可以这样:*((int *)0x12ff7c) = 0x100;C指针解析及指针作为参数传递的应用  http://www.linuxidc.com/Linux/2014-01/95395.htm《C++ 设计新思维》 下载见 http://www.linuxidc.com/Linux/2014-07/104850.htmC++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码 http://www.linuxidc.com/Linux/2014-05/101227.htm读C++ Primer 之构造函数陷阱 http://www.linuxidc.com/Linux/2011-08/40176.htm读C++ Primer 之智能指针 http://www.linuxidc.com/Linux/2011-08/40177.htm读C++ Primer 之句柄类 http://www.linuxidc.com/Linux/2011-08/40175.htm将C语言梳理一下,分布在以下10个章节中:
  1. Linux-C成长之路(一):Linux下C编程概要 http://www.linuxidc.com/Linux/2014-05/101242.htm
  2. Linux-C成长之路(二):基本数据类型 http://www.linuxidc.com/Linux/2014-05/101242p2.htm
  3. Linux-C成长之路(三):基本IO函数操作 http://www.linuxidc.com/Linux/2014-05/101242p3.htm
  4. Linux-C成长之路(四):运算符 http://www.linuxidc.com/Linux/2014-05/101242p4.htm
  5. Linux-C成长之路(五):控制流 http://www.linuxidc.com/Linux/2014-05/101242p5.htm
  6. Linux-C成长之路(六):函数要义 http://www.linuxidc.com/Linux/2014-05/101242p6.htm
  7. Linux-C成长之路(七):数组与指针 http://www.linuxidc.com/Linux/2014-05/101242p7.htm
  8. Linux-C成长之路(八):存储类,动态内存 http://www.linuxidc.com/Linux/2014-05/101242p8.htm
  9. Linux-C成长之路(九):复合数据类型 http://www.linuxidc.com/Linux/2014-05/101242p9.htm
  10. Linux-C成长之路(十):其他高级议题
本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-11/109964.htm