<article class=“article fmt article-content”><h2>简略C语言程序的形成和格局</h2><pre><code class=“C”>/求矩形面积/#include “stdio.h"int main() { double a, b, area; a = 1.2; /将矩形的两条边长别离赋给a和b/ b = 3.6; area = a * b; /计算矩形的面积并贮存到变量area中/ printf(“a=%f,b=%f,area=%f\n”, a, b, area);}</code></pre><ol><li>C语言规定必须用main作为主函数名,每一个可执行的C程序都必须有且只有一个主函数</li><li>C程序中的每一条执行语句都必须用分号完结</li><li><p>正文内容必须放在符号“/”和“/”之间,在正文之间不能够再嵌套“/”和“/”</p><h2>标识符、常量和变量</h2></li></ol><p><strong>标识符</strong></p><ol><li>由字母、数字和下划线组成,并且第一个字符必须为字母或下划线</li><li><p>类别</p><ol><li>关键字</li><li>预约义标识符</li><li>用户标识符</li></ol></li></ol><p><strong>常量</strong></p><ol><li>程序运行中,其值不能被扭转的量</li><li><p>分类</p><ol><li><p>整型常量:只用数字示意,不带小数点</p><ol><li>短整型常量</li><li>长整型常量</li></ol></li><li>实型常量:必须带小数点的数</li><li>字符常量</li><li>字符串常量</li></ol></li></ol><p><strong>符号常量</strong></p><pre><code class=“C”>/计算圆面积/#include “stdio.h”#define PI 3.14159 /定义符号名PI为3.14159/int main() { double r, s; r = 5.0; s = PI * r * r; printf(“s=%f\n”, s);}</code></pre><p><strong>变量</strong></p><ol><li><p>变量指程序运行过程中其值能够扭转的量</p><h2>整型数据</h2></li></ol><h3>整型常量</h3><ol><li>整型常量能够用十进制、八进制和十六进制等模式示意</li><li>八进制数:结尾必须是数字“0”</li><li>十六进制数:应用“0x”或“0X”结尾;十六进制数中的字母a、b、c、d、e、f既能够小写也能够大写</li><li><p>在C程序中,只有十进制数能够是正数,而八进制和十六进制数只能是负数</p><h3>整型变量</h3></li><li><p>基本型的整型变量用类型名关键字int进行定义</p><pre><code class=“C”>int k;int i, j, k;int i = 1, j = 0, k = 2;</code></pre><h3>整型数据的分类</h3></li><li>短整型(short int)</li><li>根本整型(int)</li><li>长整型(long int)</li><li>无符号型(unsigned):无符号整数在数的开端加上字母后缀u或U;若是长整型无符号整型常量,加上后缀lu或LU</li></ol><blockquote>若不指定变量为无符号型,则变量隐含为有符号型(signed)</blockquote><h3>整数在内存中的贮存模式</h3><ol><li>通常把一个字节的最左边一位称为最低位,最右边一位称为最高位。对于一个有符号整数,其中最高位用来寄存整数的符号,称为符号位。若是正整数,最高位搁置0;若是负整数,最高位搁置1</li><li>负整数在内存中以“补码”模式寄存</li></ol><p><strong>例</strong>:取二进制数10000101(十进制数-5)的补码<br/>步骤如下:求原码的反码。把原码除符号位之外的二进制码按位取反,得11111010</p><pre><code> 把所得的反码加1,失去原码的补码。得11111011</code></pre><blockquote><p>把内存中以补码模式寄存的二进制码转化成十进制的负整数</p><ul><li>先对除符号位之外的各位取反</li><li>将所得二进制数转换成十进制数</li><li>对所求得的数再减1</li></ul></blockquote><h2>实型数据</h2><h3>实型常量</h3><ol><li><p>小数模式:必须要有小数点</p><h3>实型变量</h3></li><li><p>单精度型(float)</p><ol><li>定义:<code>float a,b,c;</code></li><li>占4字节的存储单元</li></ol></li><li><p>双精度型(double)</p><ol><li>定义:<code>double x,y,z;</code></li><li>占8字节的存储单元</li></ol><h2>算数表达式</h2><h3>根本的算数运算符</h3></li><li>加(+)</li><li>减(-)</li><li>乘(*)</li><li>除(/)</li><li>求余(%):运算对象只能是整型</li></ol><blockquote><ul><li>这些运算符须要两个运算对象,称为双目运算符</li><li>“+”和“-”也可用作单目运算符,运算符必须呈现在运算数的右边</li><li>如果双面运算符两边运算数的类型统一,则所得后果的类型与运算数的类型统一</li><li>如果双目运算符两边运算数的类型不统一,零碎将主动进行类型转换,使运算符两边的类型达到统一后再进行运算</li><li>在C语言中,所有实型数的运算均以双精度形式进行</li></ul></blockquote><h3>运算符的优先级、联合性和算数表达式</h3><ol><li>算数运算符的优先级</li><li><p>算数运算符和圆括号的联合性</p><ol><li>以上运算符中,只有单目运算符“+”和“-”的联合性是从右到左的,其余运算符的联合性都是从左到右</li></ol></li><li><p>算数表达式</p><ol><li>定义:用算术运算符和一对圆括号将运算符(或称操作数)连接起来的、合乎C语言语法的表达式</li><li>运算对象能够是常量、变量和函数等</li></ol><h3>强制类型转换表达式</h3></li><li><p>格局:<code>(类型名)(表达式)</code></p><ol><li><code>(类型名)</code> 称为强制类型转换运算符</li></ol><h2>赋值表达式</h2><h3>赋值运算符和赋值表达式</h3></li><li>格局:<code>变量名=表达式</code></li><li>赋值运算符的左侧只能是变量,不能是常量或表达式</li><li><p>C语言规定最右边变量中所失去的新值就是赋值表达式的值</p><h3>复合赋值表达式</h3></li><li><p>定义:在赋值运算符之前加上其余运算符</p><h3>赋值运算中的类型转换</h3></li><li>如果赋值运算符两侧的数据类型不统一,在赋值前零碎将主动先把右侧表达式求得的数值按赋值号右边变量的类型进行转换</li><li><p>在C语言的表达式(不包含赋值表达式)中的转换规则</p><ol><li>一个短整型,一个长整型:$短整型 \to 长整型$</li><li>一个是有符号整型,一个是无符号整型:$有符号整型 \to 无符号整型$</li></ol><h2>自加、自减运算符和逗号</h2><h3>自加运算符和自减运算符</h3></li><li>“++”和“–”都是单目运算符,不能给常量或表达式赋值</li><li>既能够前缀模式呈现,也能够后缀模式呈现</li><li>对于变量来说自增或自减1;对于表达式来说,前置先自增后应用变量值,后置先应用变量值再自增</li><li><p>联合方向:从右至左</p><h3>逗号运算符</h3></li><li>联合方向:从左至右</li><li>逗号运算符优先级最低</li></ol></article>