首页 > 其他分享 >指针的运算

指针的运算

时间:2023-03-13 20:31:57浏览次数:32  
标签:arr 运算 int 地址 str 指针

1、指针关系运算

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

2、指针加减整数运算

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

3、指针-指针的运算

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

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

指针的运算_两个指针

举几个例子

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;
}



标签:arr,运算,int,地址,str,指针
From: https://blog.51cto.com/u_15740457/6118657

相关文章

  • CH582 CH592 CH573 PC指针打印(排查程序运行+死循环指示)
    代码调试如果需要程序死循环,又不晓得停在哪,可以通过打印PC指针进行定位,具体方法如下比如开启看门狗中断,开发方法参考CH573CH582CH579看门狗使用-debugdabiaoge-博......
  • 无法获取本地变量或参数的值,因为它在此指令指针中不可用,可能是因为它已经被优化掉了
    问题:调试时,变量的值无法显示,打印变量值提示"无法获取本地变量或参数的值,因为它在此指令指针中不可用,可能是因为它已经被优化掉了"。解决办法:取消"优化编码"勾选框勾选状......
  • 三元运算符
    /***x?y:z*如果x==true则返回y否则结果为z*/publicstaticvoidmain(String[]args){intscore=50;Stringstype=sc......
  • computer processor -- 逻辑运算化简
    性质:    栗子 ......
  • 04 Golang 运算符
    一、算术运算符运算符描述+相加-相减*相乘/相除%求余代码示例:1packagemain2​3import"fmt"4​5funcmain(){6//......
  • 指针类型转换:reinterpre_cast
    指针类型转换:reinterpre_cast//用于指针类型之间的转换//用于整数和指针类型的转换//原理是直接从二进制位进行复制,是一种极其不安全的转换int*p=reinterpre_cas......
  • Android 近期关注的文章和内容位运算符使用场
    App启动流程分析 ​​https://zhuanlan.zhihu.com/p/59801160​​ Application启动流程 ​​https://www.jianshu.com/p/14d54a76b16f​​Kotlin基础语法 ​​ https:......
  • 代码随想录day 6|指针总结
    环形链表题目链接:142、环形链表Ⅱ题目描述:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,使用整数pos来表示链表尾连......
  • 基础算术运算符
    理解:不同数据类型的数进行运算,结果为容量高的。自增,自减,属于一元运算符。自增,自减,例如intb=a++intb=++a;当不进行赋值操作时。a都是自身++,也就是a=a+1操作。当进行......
  • 指针类型的意义
    调试可以看出不论是声明类型的指针变量,他的字节大小都是8个字节(在32位平台上是4个字节,在64位平台是8个字节),在大小上,指针类型没有任何区别。TIP:一个十六进制位==4个二进制位......