指標變數進行運算
阿新 • • 發佈:2019-01-10
兩個指標變數之間的運算:只有指向同一陣列的兩個指標變數之間才能進行運算,否則運算毫無意義。
1 相減運算:
指標相減的值是指標地址的偏移量除以指標每次移位的大小。注意:無加法運算。
2 關係運算:
指向同一陣列的兩指標變數進行關係運算可表示所指陣列元素之間的關係:
pf1==pf2 -> pf1、pf2指向同一元素;
pf1 > pf2 -> pf1處於高地址;
pf1 < pf2 -> pf2處於低地址;
判空操作。設p為指標變數,p == 0表明p是空指標,它不指向任何變數;p != 0表示p不是空指標。空指標
是由對指標變數賦0值而得到的。例如:#define NULL 0
int *p = NULL;
對指標變數賦0值和不進行賦值,結果截然不同。未賦值時,值是不能使用的隨機垃圾值;指標變數賦0值後,可以使用,只是不指向具體的變數。
#include<iostream> using namespace std; #include<stdio.h> int main() { short arr[15] = { 0 }; short *p, *q; p = q = arr; p++; cout<<p - q<<endl; cout << (char*)p - (char*)q << endl;; cout<<sizeof(arr) / sizeof(*arr)<<endl; return 0; }