匿名网友:
1、&a:其含义比较单纯,就是“变量a的地址”。
2、*a:用在不同的地方,含义也不一样。
1在声明语句中,*a只说明a是一个指针变量,如int *a;(2)在其他语句中,*a前面没有操作数且a是一个指针时,*a代表指针a指向的地址内存放的数据,如b=*a;(3)*a前面有操作数且a是一个普通变量时,*a代表乘以a,如c=b*a。
匿名网友:
1 用''对包含的代表字符常量,其值为字符a的ascii码。
2 用""对包含的代表字符串常量,其有两个元素,第一个是a,第二个是结束符'\0'。
于是二者区别可以总结为:1 类型不同,字符和字符串。
2 占用空间不同,前一个是一个字节,后一个是两个字节。
匿名网友:
这个太有区别了!a==b==c 是一个关系表达式,由于运算符"=="具有左结合性,故其运算顺序是:a==b ==c 若a=5,b=5,c=5,则a==b的值为1,而1==c的结果为0a==b,b==c是分别判断a和b以及b和c关系运算 补充,楼上说a==b==c是先执行b==c是错误的,因为C语言中只有赋值运算符和单目运算符具有右结合性,故运算对象b必然先于左侧的"=="结合。
再次补充:这不是赋值的问题,没有赋值运算符,而是关系运算...
匿名网友:
假设int a = 1;那么假设printf("%d",--a);那么是将a减1,然后输出a输出的结果就是:0假设printf("%d",a--);是先输出a,然后执行a-1.输出结果是:1int a = 1;printf("%d\n",a--); // 是先输出a,然后执行a-1.printf("%d\n",a); // 所以这里输出的a是0!而且注意不要把增量运算符或减量运算符放在输出中,比如:int a = 1;printf("%d\t%d\t%d\t%d\n",a,a++,a,a++);输出结果是3 2 2 1你可能疑惑为什么第二个a++不是3呢?因为标准C并没有规定在一个语句中是每执行执行一次增减量运算符后执行增减还是整个语句执行完后完成增减...所以最好不要使用这种方法.可以把语句分开来运算...
问题推荐