社区
C语言
帖子详情
指针减指针的问题
csShooter
2007-07-31 08:53:06
char*a,*b;
a = "123456";
b = "123456789";
printf("%d\n%d\n",&a,&b);
printf("%d\n",b-a); /* 能猜出来b-a肯定是strlen(a)+1 */
-------------------------------------------
输出:
2293628
2293624
7
----------------
b-a 值为7可以理解。但为啥a的地址xx28减b的地址xx24只有4呢?
...全文
224
10
打赏
收藏
指针减指针的问题
char*a,*b; a = "123456"; b = "123456789"; printf("%d\n%d\n",&a,&b); printf("%d\n",b-a); /* 能猜出来b-a肯定是strlen(a)+1 */ ------------------------------------------- 输出: 2293628 2293624 7 ---------------- b-a 值为7可以理解。但为啥a的地址xx28减b的地址xx24只有4呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuegao007
2007-07-31
打赏
举报
回复
这两个指针相减是没任何意义的,你做联系还可以。
指向同一元素的两个指针相减才有意义。
阿发伯
2007-07-31
打赏
举报
回复
printf("%d\n%d\n",&a,&b);输出的是a,b变量的地址,也就是a,b在栈中的地址,printf("%d\n%d\n", a, b); 才是字符串的地址
csShooter
2007-07-31
打赏
举报
回复
感谢楼上两位,正是我想要的结果!
lockhall
2007-07-31
打赏
举报
回复
printf("%d\n%d\n",a,b);
這樣就可以了。
星羽
2007-07-31
打赏
举报
回复
printf("%d\n%d\n",a,b);
csShooter
2007-07-31
打赏
举报
回复
看来需要学习的地方太多了!
printf("%d\n%d\n",&a,&b);
------------------------------
上面这句话其实我只想知道a的地址是多少,b的地址是多少?!
是不是有错?
superyys
2007-07-31
打赏
举报
回复
/* 能猜出来b-a肯定是strlen(a)+1 */
不要挑战编译器的极限,正常情况下是这样的,也不排除编译器做个什么特殊优化,把变量的位置变换一下. a,b是指针的指针,按照LZ的思维,程序相连的变量在分配内存时也连在一起,而在32位机器上,指针变量都是一个unsigned int,也就是占用四个字节,当然是4了,如果你在dos 622下编译,我敢肯定是2,在64位xp 中用64位编译器编译,我敢肯定是8
www_adintr_com
2007-07-31
打赏
举报
回复
char a[] = "123456";
char b[] = "123456789";
csShooter
2007-07-31
打赏
举报
回复
两个变量是紧跟着初始化地!!
中间没有定义其它变量。应该可以!
lockhall
2007-07-31
打赏
举报
回复
/* 能猜出来b-a肯定是strlen(a)+1 */
這個不是肯定。
220个经典C语言源码
007 自增/自
减
运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 013 用二维数组实现矩阵转置 014 求解二维数组的最大/最小元素 015 利用数组求...
指针
的算数运算(
指针
加
减
数字、
指针
减
指针
)
1、
指针
加
减
数字是合法的
指针
加
减
数字表示的意义是
指针
在数组中位置的...//
指针
减
数字 int *p = (int *)0x1010;//定义一个整型
指针
变量p赋值为16进制数0x1010 printf("%x\n",p-1);//100c 去掉一个*,属...
2小时精通C++智能
指针
智能
指针
可以解决普通
指针
存在的悬垂
指针
、野
指针
、资源泄露等
问题
本教程的主要的演示平台为Qt 4.11和g++ 7.4。学员也可以使用Visual Studio 2017。 教程中从最简单的例子入手,覆盖智能
指针
的常用技术点,并穿插...
C语言--
指针
加
减
指针
加
减
一个整数
指针
变量的大小都是四个字节,
指针
加1,是加了一个
指针
所指向类型的大小,不是加
指针
变量的大小。 #include <stdio.h> int main() { int m = 0; int *p; p=&m; printf("%p%p",p,p+1);//p...
指针
、数组和
指针
加
减
指针
、数组和
指针
算数
指针
和数组基本等价的原因在于
指针
算数c++内部处理数组的方式。
指针
变量加1,增加的量等于它指向的类型的字节数。将指向double的
指针
加1后,如果系统对double使用8字节存储,则数值增加8字节。...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章