指针的运算

简介: 指针的运算

1、指针关系运算

比较两个指针(地址)的大小

2、指针加减整数运算

根据指针的类型,判断指针加减整数的步长。

3、指针-指针的运算

指针减去指针得到的是两个指针之间相差的元素个数

指针和指针相减的前提是两个指针指向同一块空间

image.png

举几个例子

int main()
{
  int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  int* p = arr;
  int* pend = arr+9;
  while (p <= pend)//指针的关系运算
  {
    printf("%d\n",*p);
    p++;//指针加减整数的运算
  }
  return 0;
}

指针-指针解决my_strlen()

因为指针-指针得到的是两个地址之间相差的元素个数,所以只需要‘\0’的地址减去首元素的地址就可以得到字符串的元素个数。

int my_strlen(char* str)
{
  char* start = str;
  while (*str!='\0')
  {
    str++;
  }
  return str - start;
}
int main()
{
  int len = my_strlen("acd");//字符串在传参时,就是传首元素的地址
  printf("%d\n", len);
  return 0;
}
相关文章
|
C语言
C语言:指针的运算
指针 + 或 - 整数表示指针跳过几个字节(具体跳过几个字节由指针类型决定) 本文不做具体讲解,详解跳转链接。
79 1
|
编译器
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(上)
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(上)
|
2月前
|
人工智能
魔法指针 之 指针变量的意义 指针运算
魔法指针 之 指针变量的意义 指针运算
22 0
|
编译器
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(下)
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(下)
|
6月前
|
存储 C++
有关【指针运算】的经典笔试题
有关【指针运算】的经典笔试题
34 4
|
7月前
|
C语言
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)1
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
203 51
|
7月前
|
C语言
在引用数组元素时指针的运算
在引用数组元素时指针的运算
54 0
|
7月前
|
C语言 C++
C语言:指针运算笔试题解析(包括令人费解的指针题目)
C语言:指针运算笔试题解析(包括令人费解的指针题目)
|
7月前
|
存储 人工智能 编译器
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
111 1
|
7月前
|
编译器
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)3
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)