#include <stdio.h>
#include <iostream>
//指针 类型(步长)+地址(物理类型)
// int 数值+1,就是加1
// T *指针 +1,加的是步长,sizeof(T)大小
/*
注意:只有当指针指向一串连续的存储单元时,指针的移动才有意义.
才可以将一个指针变量与一个整数n做加减运算
*/
using namespace std;
int main()
{
int *p = (int*)0x0001; //十六进制数
int data = 0x0001;
printf("p = %#x p+1 = %#x\n",p,p+1); //地址++
printf("p = %#x p+1 = %#x\n", data, data + 1); //数值++
printf("%x\n",++p);
printf("%x\n", ++data);
int arr[10];
int *pHead = &arr[0]; int *pTail = &arr[9];
//上句也可以写成如下形式
//int *pHead = arr; int *pTail = arr+9;
printf("%d\n", pTail - pHead); //指针加减 这是会输出步长
int sHead = (int)arr; //一个地址
int sTail = (int)(arr+9); //一个地址
//int sHead = (int)&arr[0];
//int sTail = (int)&arr[9];
printf("%d\n", sTail - sHead); //数值加减 值为 9*sizeof(int) 地址是连续的
system("pause");
return 0;
}
一级指针的简单运算代码及案例
最新推荐文章于 2022-07-27 17:05:41 发布