部分指针内容已经在内存相关中提及
最近一些C语言的笔试题或者是面试题又屡屡出现
因此在这里特地专开一栏用于强调
参考书籍:《C专家编程》、《C语言与指针》、《C安全手册》
1.指针运算(摩尔线程考题)
参考博客[]:https://www.cnblogs.com/engure/p/12294408.html
指针变量比较大小:
指针变量进行加减:
指针变量与整型变量进行加减:此时加减的含义并不是其地址值进行了加减,而是与指针指向的数据类型相关联。如果指针变量 p 的值是0x20000000,那么 p=p+2 的值并不是 0x20000002,如果在 32 位的操作系统上,p 是指向整型数据的指针变量,那么 p=p+2 之后,p 的地址值变成 0x20000008,也就说地址值加了: sizeof(int)*2。加减的数字是以指针指向的数据类型为量度的,p+2 表示 p 在内存中前移两个int的距离。
同样地经常考察数组指针(数组名)的加减。这篇讲解非常详细【还有图解】:[]:https://www.freesion.com/article/2870764107/
指针变量与指针变量相减(不能相加):两个指针变量(同一类型)相减表示两个指针指向的内存位置之间相隔多少个元素(不是字节数),例如对于 int 类型的指针 p1 和 p2, p1-p2 的意义表示他们之间相隔多少个int元素。