社区
C语言
帖子详情
指针,什么时候*q等于q?
tfq
2005-06-12 05:28:35
如题
...全文
646
45
打赏
收藏
指针,什么时候*q等于q?
如题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
45 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LoveCreatesBeauty
2005-06-14
打赏
举报
回复
//q_star_1.c
#include <stdio.h>
#include <stdlib.h>
int main(){
int * q = malloc(sizeof(int));
*q = (int)q;
if (*q == q){
printf("%s", "*q == q\n");
}
free(q);
}
Cocoky
2005-06-14
打赏
举报
回复
仅仅是值相等,语法并不相等,这种判断没有意义
greenteanet
2005-06-14
打赏
举报
回复
问题没有意义,而且按照语法不会相等...
kokyulei
2005-06-13
打赏
举报
回复
是啊,这个问题到底是这么回事啊,^_^。
blackcrusoe
2005-06-13
打赏
举报
回复
p和*p类型不同,怎么相等?就象大象和老鼠,虽然都有四条腿,难道就可以大象=老鼠了吗?
一叶还真不知秋
2005-06-13
打赏
举报
回复
int *p;
*p = &p;
tfq
2005-06-13
打赏
举报
回复
硬生生的给他赋值不等也得等啊。
truewill
2005-06-13
打赏
举报
回复
void* p;
p = &p;
garfunklett
2005-06-13
打赏
举报
回复
不要捉摸这个 才是王道
jixingzhong
2005-06-13
打赏
举报
回复
这在有时候,仅仅是很少的时候,而且仅仅是在值上相等!!
比如2为数组名.
这样用的话容易产生逻辑上的混乱!!
建议楼主,即使值一样,也要区分清楚!!
晨星
2005-06-13
打赏
举报
回复
也不是相等,只是说使用一个函数指针p调用一个函数时,
p();
*p();
两种方式等效。
晨星
2005-06-13
打赏
举报
回复
应该是函数指针吧。
哇哈哈哇哈哈
2005-06-13
打赏
举报
回复
二维数组的情况下:
int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
printf("%o, %o\n", a, *a);
虽然值相同,但代表的意思不同。
darkstar21cn
2005-06-13
打赏
举报
回复
int* p = new int;
*p = p;
assert (*p == p);
QunKangLi
2005-06-13
打赏
举报
回复
1.
int *p = (int*)(&p) ;
2.
typedef int (*FunPtr)() ;
int fun() ;
FunPtr f1, f2 ;
f1 = fun ;
f2 = &f1 ;
//f1==f2!
cpponduty
2005-06-13
打赏
举报
回复
村民出来报道!
cpponduty
2005-06-13
打赏
举报
回复
这个的前提,是 int *q;
cpponduty
2005-06-13
打赏
举报
回复
饼子村的村民们都无聊到这里来了???
*q可以等于q哦。。。偶给个简单的例子
__asm {
mov eax,q
mov [q],eax
}
在执行完这个之后
*q = q (它们的数值上,原则上指针是一个4字节的数字)
tfq
2005-06-13
打赏
举报
回复
定义二维数组或者指向一维数组的指针时*q和q指向的地址值是相同的,只是意义不同。
类似于&a[0]和&a[0][0]。其实书上都讲有的。我只是重提罢了 。怎么那么多人大惊小怪呢?
这问题搞的现在已经不是技术问题了,而是对待问题的态度了。
wfhlxl
2005-06-13
打赏
举报
回复
#include <iostream.h>
void main()
{
long *p;
p = new long;
*p=(long)p;
cout << (long)p <<" "<<*p;
}
加载更多回复(25)
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章