作业帮 > 综合 > 作业

这两个表达式等价吗?(int)*a*(int *)a如果等价 这个函数int cmp_int (const void *

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/15 20:24:52
这两个表达式等价吗?
(int)*a
*(int *)a
如果等价 这个函数
int cmp_int (const void *a,const void *b) {
return (*(int *)a - *(int *)b);
}
可不可以写成
int cmp_int (const void *a,const void *b) {
return ((int)*0a - (int)*b);
}
这两个表达式等价吗?(int)*a*(int *)a如果等价 这个函数int cmp_int (const void *
不等价,含义不同.
(int)*a 是直接把指针a指向的地址里面内容取出来,再转换成int类型
*(int *)a 是把指针a转换int*类型的指针,再取其内容(int类型的)
如果a是char*或short*类型的,(int)*a 跟*(int *)a 结果是不一样的!
如果a是void*,*a的写法是错误的,因为void是无类型,因此无法判断*a的类型
a是const变量,也能直接(int)*a的,只要不对*a赋值就行