社区
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呢?
...全文
311
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 */
這個不是肯定。
基于CC2430/31的Zigbee实践(5)--结构体
指针
减
1
问题
1、关于结构体 –1 访问
问题
#define OSAL_MSG_ID(msg_ptr) ((osal_msg_hdr_t *) (msg_ptr) - 1)->dest_id 为什么要-1呢?It's a question. byte OnBoard_SendKeys( byte keys, byte state )调用下面函数 byte osal_msg_send( byte destination_task, byte *msg_ptr
foreach next 操作数组
指针
移动
问题
,多个数连加,连除,连
减
,连乘php版本
2018年10月20日10:39:40 先说结论,foreach 维护的是一套属于自己的数组
指针
会在操作数据的时候,分裂一套变量地址,即使你强制使用 & 取地址一样会分裂,不会引用同一套
指针
所有在foreach的时候需要主动操作
指针
的时候,就会出现
问题
,很容易key超出变量的长度 测试demo 1,测试
指针
是否同步,会受到数组操作函数的影响 $a = [3,4,5,6,7]; ...
C++数组
指针
不能自增1/自
减
1
我们知道
指针
可以自增1/自
减
1,如下面这个代码是没
问题
的 int *var; var++; 但如果var是指向数组的
指针
,那么var++是非法的,如下面例子 #include <iostream> using namespace std; const int MAX = 3; int main () { int var[MAX] = {10, 100, 20...
指针
+ 数字 和
指针
-
指针
的一些
问题
在进行
指针
相
减
或
指针
加数字时需要进行一些调整。
指针
变量(
指针
)中存放的是地址。
指针
+ 数字:
指针
加法需要调整,调整的权重为
指针
本身去掉一个*号,求sizeof。如下图.1
指针
- 数字:
指针
加法需要调整,调整的权重为
指针
本身去掉一个*号,求sizeof。如下图.1 举例:int *p;p+2的值为p的值加上2*sizeof(int)个字节。 #include<stdio....
php foreach next,foreach next 操作数组
指针
移动
问题
,多个数连加,连除,连
减
,连乘php版本...
2018年10月20日10:39:40先说结论,foreach 维护的是一套属于自己的数组
指针
会在操作数据的时候,分裂一套变量地址,即使你强制使用 & 取地址一样会分裂,不会引用同一套
指针
所有在foreach的时候需要主动操作
指针
的时候,就会出现
问题
,很容易key超出变量的长度测试demo1,测试
指针
是否同步,会受到数组操作函数的影响$a = [3,4,5,6,7];foreach ($a...
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章