c语言x=&y和*x=y有什么区别?

作者&投稿:纵竖 (若有异议请与网页底部的电邮联系)
c语言中x=y 和x==y有什么区别啊?~

代码执行先后顺序的区别
++代表+=1,在变量前面例如++x-1代表着直接在这里将变量值加上1,故y=6-1=5
而在变量后面,x++-1代表着在执行完这一行再予以加1,故y=5-1=4

实验代码:#include
int main(){
int x=5,y=10;
printf("%d %d
",x,y);
y=++x-1; // => 在这里意味着 变量x 直接+1,y= 变量x -1
printf("%d %d
",x,y);
x=5;y=10;
y=x++-1; // => 在这里意味着 变量x 现在暂时不变,y= 变量x -1
printf("%d %d
",x,y); // => 执行完上一句代码后,x值才+1
}

*x是定义的一个指针变量,也是内存上的一块空间,只不过空间里面存放的是地址。其中*是指针的一个标志。y是一个变量,加上&后表示取得了此块空间的地址,因此两者是等价的。意思就是把y的地址赋值给x。
int *x,y;
*x=y;/*此时*x和y是等价的*/

C的函数中的形参接收的都值拷贝。用x=&y后使x指向了y,但x和y都是fun中的局部变量,退出后都不存在了,影响不到主函数中的变量值。而*x=y;是把y的值(也就是主函数中的b的值)赋给x指向的变量,x指向的变量不是a吗?所以实质就是把b的值赋给了a;而返回值是y=t,实质就是t,t既然先等于了*x,*x又就是a,b=fun(&a,b);返回给b的不就是a吗?这就实现了交换。另说一句return y=t;中y=是多此一举,写return t;就行了,因为y是fun的局部变量,在主函数中根本不可见!

if(x==y)是判断x与y是否相等,相等则为真,不等则为假
if(x=y)这个是把y的值赋给x,然后判断表达式x=y的值,c语言中,赋值表达式是有值的,它的值是赋值符号右边的值,即x=y的值是y的值,如果y的值为0,那么x=y为假,否则为真
一般来讲,编程过程中if(x=y)这种写法是错误的写法,程序能够通过编译,也能够运行,但是可能会出现意料之外的结果。

x = &y。 fun函数的局部变量x指向的地址被改变,注意这儿的指针是值传递, 所以不会对传入的变量有任何影响,得到的结果就是a,b变成了相同的数值。 这样做没什么意义。

x=y
是一个赋值表达式,将y的值赋给x
x==y是一个逻辑表达式,判断x是否等于y,其值为1(真)或0(假)

c语言x=&y和*x=y有什么区别?整型和指针的问题啊~


C语言中 x==0 是什么意思?
“==”是逻辑运算符,用于判断是否等于。例如: y = (x == 0) 中如果x的值为0,那么 x == 0 的运算结果就是1,y的值就是1,否则x == 0 的运算结果就是0,y就等于0。这是c等语言比较基本且应该掌握的知识。

C语言里,怎样理解表达式(x=a>b)&&(y=c>d)的意义?
将a>b的值赋值给x 将c>d的值赋值给y 然后进行逻辑与运算。 关键是优先级

C语言 表达式!X等价于——— A,x==0; B,x==1; C,x!=0; D,x!=1;_百 ...
答案是A,C语言表达式!X等价于x==0。!x 的意思就是 !x 为非0,也就是 x==0 选A,&&表达式是实质上是一个判断:就是当作有两边的操作数都为真时,结果才为真。这里X&&1,右边已经是真值,如果你需要X&&1返回的是真值,那么x就不能为0.也就是选A了。当x→0时,等价无穷小:(1)sinx...

c语言中的x==y是什么意思
C语言里面(==)一般都是判断两个值是否相等,例如if(x==y)就是判断变量x和y是否相等

在C语言if语句后的逻辑量中X=0和X==0的区别?其实主要是想知道X=0啥时 ...
亲,x是变量。变量就是在程序运行过程中可以改变的量。x=0这个赋值表达式意思是把0这个常量值赋值给x,如果x=1意思是把1这个常量赋值给x。而x==0这个表达式判断x变量的值是否为0。x=0在任何情况下都是假的,如果你给x赋一个非零的值,它就为真啦!还有就是c语言中的=不是数学上的等于运算,...

C语言中 “X== ” 是什么意思
==是双目运算符 =是赋值用的 比如:a=b:将b的值赋予给a a==b:主要目的是为了判断所用,即判断a是否等于b,若等于,就。。。

x什么意思c语言视频教程
c语言x的含义是转义字符 告诉编译器需要用特殊的方式进行处理。x表示后面的字符是十六进制数,\\0表示后面的字符是八进制数。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能...

c语言中,x=1,-x++等于什么
-x++=-(x++),因为x=1,且x++是后置的,所以此处x=1,然后x加1,所以 -x++=-1

c语言!x==y与!x=y有什么区别?x=3,y=4,!(x<0)是什么意思啊?
x==y是比较x和y是否相等。x=y是赋值,把y的值赋值给x !是逻辑非,对右面部分的否定。!(x<0)当然就是把x<0否了,就是传说中的x不小于0,你高兴的话写成x>=0也随你

c语言里 if(x=y=z)是什么意思?
意思是将z的值赋给y,再赋给x,如果x的值不是0,则x=y=z为真,值为1,如果x的值是0,则x=y=z为假,值为0。

珠海市19319013298: c语言x=&y和*x=y有什么区别? -
双鸿重酒: x=y 是一个赋值表达式,将y的值赋给x x==y是一个逻辑表达式,判断x是否等于y,其值为1(真)或0(假)

珠海市19319013298: x*y和(x)*(y)在c语言中有什么不同 -
双鸿重酒: 这是一个三目运算符,如果 --x 与 y++相等的话,把--x的值赋给a,否则,将++y的值赋给a; 在这里,--x是先对x进行自减1再执行语句,y是再执行完语句再执行y自加1,也就是说现在解析出来的表达式为 x - 1 == y ,后面同理!

珠海市19319013298: x&&y在c语言中什么意思 -
双鸿重酒: &&是逻辑与 x&&y当x与y都为真时,结果为真(1),否则为假(0)

珠海市19319013298: C语言中!(x==1&&y==1)和x!=1&&y!=1有什么区别? -
双鸿重酒: 在do{}while的第一次循环,是无条件的循环,只有满足条件时才作更多次循环体的执行.!(x==1&&y==1)--------->“x,y不同时为1”,只要有一个不为1就循环 x!=1&&y!=1------------->“x,y同时不为1”,必须要两个都不为1才循环

珠海市19319013298: 在vc++中(x==y)与(x=y)的区别 -
双鸿重酒: ==是逻辑是否相等,如果x等于y,则结果是逻辑1否则是逻辑0,=是赋值,x=y是把y的值给x,想就等于y的值.

珠海市19319013298: *x=&y是什么意思,代表什么?C语言中的. -
双鸿重酒: *x是定义的一个指针变量,也是内存上的一块空间,只不过空间里面存放的是地址.其中*是指针的一个标志.y是一个变量,加上&后表示取得了此块空间的地址,因此两者是等价的.意思就是把y的地址赋值给x. int *x,y; *x=y;/*此时*x和y是等价的*/

珠海市19319013298: x>y?x:y;在C语言中代表什么意思 -
双鸿重酒: 一楼说的还有点问题.A?B:C 这个运算是判断A的真假,若是真就执行B如是假就执行C,所以x>y?x:y;这句话的意思就是判断x和y值得大小,要是x>y结果就是x,否则就是y,也就是说这句的是输出的x和y中较大的那个数.可以使用一下程序来检测:#include<stdio.h> main() { int x=1,y=2,z; z=x>y?x:y; printf("z=%d\n",z); }

珠海市19319013298: c语言x+=x*=2什么意思 -
双鸿重酒: += 指的是 x=x+? * = 指的是x=x*? C语言的执行顺序是从右到左 x+= ( x*=2 ) 先计算右边的 x*=2 再 用 结果带入到x+=()中.

珠海市19319013298: c语言中x*(y)+z和x*y+z 的区别 -
双鸿重酒: 这是宏替换的特点!宏替换是在编译时,将源程序中与宏定义符合的代码进行“傻瓜”式替换.如:#define MAX(x,y,z) x*(y)+z printf("%d/n", MAX(a+b.b+c,c+a) ); 在编译时替换成printf("%d/n", a+b*(b+c)+c+a ); 而#define MAX(x,y,z) x*y+z printf("%d/n", MAX(a+b.b+c,c+a) ); 在编译时替换成printf("%d/n", a+b*b+c+c+a ); 可见两个表达式在编译后的结果是不同的,因而结果不同!

珠海市19319013298: C语言中x+=y,x - =y分别表示什么意思x+=y,x - =y分别表示什么意思 -
双鸿重酒:[答案] x+=y 就相当于 x=x+y 其他的类似

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网