社区
C语言
帖子详情
指针,什么时候*q等于q?
tfq
2005-06-12 05:28:35
如题
...全文
633
45
打赏
收藏
指针,什么时候*q等于q?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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语言
指针
p=*q,C语言中
指针
*p=*q与p=q有什么区别
满意答案jiang19722018.02.01采纳率:43%等级:10已帮助:21人若p和q是申明为类型兼容的
指针
变量,且都正确赋有合法值且不为NULL,那么,*p=*q是把
指针
q指向的目标值赋给
指针
p指向的目标;p=q则是使
指针
p指向
指针
q指向的目标(最终是p和q指向了同一目标,这个目标就是q指向的目标)。在q==NULL时,*p=*q非法操作,p=q是合法操作(使p和q同为NULL)。...
c
指针
常见错误:*p=*q
int *p,*q; p=q; //这一步出错:由于前面未对q的值初始化,因而q的值是系统随机赋予的“垃圾值”,虽然符合语法但是会为下一步的程序出错埋下潜在危险,具体危险请看下一步的注释。 printf("%d\n",*p); return 0; //因为q的内存单元是个垃圾值,本程序不能读写*q的内容。 //因为在本程序中,q的内存单元的控制权限在定义时就分配给了本程序,...
C语言
指针
用法(*q++=*p++的含义
指针
and 赋值
*p=*q 问题
若p和q是申明为类型兼容的
指针
变量,且都正确赋有合法值且不为NULL,那么,*p=*q是把
指针
q指向的目标值赋给
指针
p指向的目标;p=q则是使
指针
p指向
指针
q指向的目标(最终是p和q指向了同一目标,这个目标就是q指向的目标)。在q==NULL时,*p=*q非法操作,p=q是合法操作(使p和q同为NULL)。综上,除q为无效(NULL)时不能取值操作外,正常情况下*p=*q操作的是
指针
指向的目标,p...
<C语言>int **q,指向一个指向整型变量的
指针
变量
指针
变量是存放地址的变量
指针
就是地址
指针
变量的值就是地址 “
指针
的值是地址”的说法是错误的,应该是“
指针
变量的值是地址”。 int** q例子: #include<stdio.h> int main() { int i=5; //定义一个整型数据 printf("i的地址为:%d\n", &i); int *p = &i; //定义一个
指针
变量p,它的值是整型变量i的地址 printf("p中保存的i的地址为:%d\n", p); printf("p指向的.
C语言
69,367
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章