目录
- 一、指针+-整数
- 二、指针-指针
- 2.1条件
- 2.2两个指针指向同一块空间代码
- 2.2.1运行结果
- 2.3两个指针指向不同块空间代码
- 2.3.1运行结果
- 2.4总结
- 三、指针的关系运算
- 3.1代码
- 3.1.1运行结果
- 3.1.2分析
一、指针±整数
用数组举例:
因为数组在内存中是连续存放的,只要知道第⼀个元素的地址,顺藤摸瓜就能找到后面的所有元素。
代码:
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int* p = &arr[0];
int sz = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < sz; i++)
{
printf("%d ", *(p + i));//指针+整数
}
return 0;
}
运行结果:
分析:
二、指针-指针
指针-指针得到的是两个指针之间的绝对值等于元素个数
2.1条件
指针减指针的计算前提条件一定是:两个指针指向了同一块空间。
2.2两个指针指向同一块空间代码
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d ", &arr[9]-&arr[0]);//指向同一块空间
return 0;
}
2.2.1运行结果
2.3两个指针指向不同块空间代码
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int cha[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("%d ", &arr[9]-&cha[0]);
return 0;
}
2.3.1运行结果
2.4总结
在使用指针-指针的时候要注意在同一块空间。
三、指针的关系运算
指针和指针比较大小
3.1代码
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int* p = arr;//&arr[0]---->>数组名等于起始地址的大小
while (p < arr + sz)
{
printf("%d ", *p);
p++;
}
return 0;
}
3.1.1运行结果
3.1.2分析
欧耶!!!!我学会啦!!!!