大理一装修设计 發表於 2025-4-11 17:12:00

C语言-运算符(1)

<h1 id="算数运算符">算数运算符</h1>
<p>+、 -、 *、 /、%、 ++、 --<br>
其中++、--属于单目运算符,其他的五种属于双目运算符</p>
<ol>
<li>除法运算符的两端如果是整数的时候,得到的结果也是整数,当两个操作数无法被整除的时候,会舍弃小数部分,只保留整数,不会四舍五入;如果两个操作数有一个为浮点数,则结果也为浮点数,精度默认为6位精度</li>
<li>取余运算符的两个操作对象必须是整数</li>
<li>*、/、%的优先级高于+、-</li>
<li>运算符具有结合性,一种为左结合性,一种为右结合性<br>
<mark>注意</mark>:C语言中的单目运算符和三目运算符都遵循右结合性,双目运算符中的=也遵循右结合性,其他运算符遵循左结合性。</li>
<li>++、--属于增量运算符,是单目运算符,只能在变量中使用,可以作为前缀增量和后缀增量</li>
</ol>
<h1 id="sizeof">sizeof</h1>
<p>sizeof是C语言中的一个操作符,可以计算数据类型的大小,以字节为单位,sizeof括号里的表达式不会实现运算和处理</p>
<pre><code>int a,b;
char c;
printf("%d",sizeof(a+b));        //4
printf("%d",sizeof(a+c));        //4
</code></pre>
<p>sizeof运算符中的表达式不会被计算,但是如果出现多个数据类型的大小计算,会涉及到基本数据类型转换<br>
数据类型转换分为两种一种是自动转换,一种是强制类型转换<br>
自动类型转换:是编译器自动进行的转换,不需要人为干预<br>
强制类型转换:人为进行的转换<br>
无论是强制类型转换还是自动类型转换,都是临时性的,转换结果会保存在临时的内存空间,不改变数据本来的类型或者值</p>
<h1 id="位操作运算符">位操作运算符</h1>
<p>C语言中有6种运算符,<sub>、&amp;、^、|、&lt;&lt;、&gt;&gt;,其中</sub>是单目运算符</p>
<ol>
<li>~按位取反,对于二进制来说,是将二进制数按位取反,例如 ~01100110 = 10011001</li>
<li>&amp;按位与,对于二进制来说,是将两个二进制数按位与,同为1则为1,否则为0,例如:10001111&amp;11001010=10001010</li>
<li>|按位或,对于二进制来说,是将两个二进制数按位或,同为0则为0,否则为1,例如:10001111|11001010=11001111</li>
<li>^按位异或,对于二进制来说,是将两个二进制数按位异或,相同为0,不同为1,例如:10001111 ^ 11001010=01000101</li>
<li>&lt;&lt;按位左移,高位舍弃,低位补001111010&lt;&lt;3=11010000</li>
<li>
<blockquote>
<blockquote>
<p>按位右移,低位舍弃,高位补001111010 &gt;&gt;3 = 00001111</p>
</blockquote>
</blockquote>
</li>
</ol><br><br>
来源:https://www.cnblogs.com/lradian/p/18821042
頁: [1]
查看完整版本: C语言-运算符(1)