C语言中指针有哪些运算 C语言指针可以相减吗?为什么?
C语言指针可以相减吗?为什么?
如果两个指针指向同一个数组,可以将它们相减,结果是两个指针之间的元素数。让我们以本章开头介绍的街道地址的类比为例。假设我住在第五大道118号,我的邻居住在第五大道124号。每间房子的地址间距是2(我这边的街道地址是连续的偶数)。那么我邻居的房子就是我房子前面的(124-118)/2(或3)房子(我邻居的房子和我的房子分开两个房子,即120和122)。指针之间的减法与上述方法相同。
指针是整数吗,若不是整数,指针为什么可以进行加减运算?
指针是可以减去的十六进制地址。P2是buf[3]的地址;P1是buf[1]的地址;因为是整数数据,一个整数是4字节,P2-P1=(P2指向的地址-P1指向的地址)/sizeof(int)P1和P2的差是2个整数,即8字节;第二种方法相当于将地址转换成10个基数并进行减法,因此数字是8;inta[10]int*P1=&A[1]]int*P2=&A[3]printf(%LDn,P2-P1)printf(%dn,(int)P2)printf(%dn,(int)P1)打印出转换成int类型的地址。(如果不转换int,则直接打印地址时可以看到8字节的差异。)
C语言中指针有哪些运算 指针运算符怎么用 strcpy函数用法
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。