为什么指针变量不可以做位运算指针变量为什么是因为什么原因限制不可以做位运算呢?我觉得对指针变量做位运算还是有意义的呀.例如通过异或可以交换两个变量的值:a=a^b;b=b^a;a=a^b;原来

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 17:50:56

为什么指针变量不可以做位运算指针变量为什么是因为什么原因限制不可以做位运算呢?我觉得对指针变量做位运算还是有意义的呀.例如通过异或可以交换两个变量的值:a=a^b;b=b^a;a=a^b;原来
为什么指针变量不可以做位运算
指针变量为什么是因为什么原因限制不可以做位运算呢?
我觉得对指针变量做位运算还是有意义的呀.
例如通过异或可以交换两个变量的值:
a=a^b;
b=b^a;
a=a^b;
原来想交换两个指针变量的指向的话也可以通过上面的方法,但是发现编译出错.必须改为通过中间指针变量交换了.

为什么指针变量不可以做位运算指针变量为什么是因为什么原因限制不可以做位运算呢?我觉得对指针变量做位运算还是有意义的呀.例如通过异或可以交换两个变量的值:a=a^b;b=b^a;a=a^b;原来
楼主肯定是想要这个!
须注意的地方:赋值双方的类型必须相同!
》》》对于人,才有void,int,float,int *.等类型,对于机器,一切皆为0,1!
顺便提醒一句:玩弄奇技淫巧者,小人也!楼主不要走火入魔!
#include
int main(void){
int i = 3;
int j = 2;
int *pi = &i;
int *pj = &j;

printf("before exchange: *pi = %d, *pj = %d\n", *pi, *pj);
pi = (int *)((int)pi ^ (int)pj);
pj = (int *)((int)pj ^ (int)pi);
pi = (int *)((int)pi ^ (int)pj);
printf("after exchange: *pi = %d, *pj = %d\n", *pi, *pj);
return 0;
}

为什么指针变量不可以做位运算指针变量为什么是因为什么原因限制不可以做位运算呢?我觉得对指针变量做位运算还是有意义的呀.例如通过异或可以交换两个变量的值:a=a^b;b=b^a;a=a^b;原来 两个相同类型的指针变量可以做相加减运算吗? 指针就是地址吗,指针变量难道不是地址?int *a是不是*a是指针 a是指针变量?那为什么说指针是常量?*a不也是可以变化的吗 指针变量,不能进行哪种运算 为什么C语言函数中可以返回局部变量而不能返回局部变量的指针? 对于指向同一数组的指针变量,不能进行哪种运算?为什么?最好能举个例子 指针常量与指针变量的区别? 函数的形式参数可以是什么变量有指针变量、数组、表达式、符号常量、整型变量 指针是变量还是常量? 不可以给指针变量赋一个int作地址值. 指针变量初始化为NULL什么意思1.为什么指针变量定义时一定要初始化?2.指针变量初始化为NULL是什么意思? 两个相同类型的指针变量能不能相加,为什么? 为什么定义指针变量时要定义其类型 谁可以解释一下指针变量和指针常量,总是弄混 C语言指针概念~是变量指向内容.还是内容指向变量?还是都可以? 下列关于指针概念的描述中,错误的是?1.指针是变量,它也具有一个内存地址值2.指针的类型是它所存放的数值的类型3.指针的值(不含常量指针)是可以改变的4.指针中存放的是某变量或对象 “指针”和 “指针变量”分别有什么使用意义呢? 举例说明什么是指针?如何让指针指向一个变量?