第一节  C语言快速入门
Main函数
    C程序都是由函数定义和数据对象定义组成,下面是函数定义的基本格式:
<返回值类型> <函数名> ( [参数说明] )
{
<函数定义>
}
    所有的函数都必须有一个返回值类型说明,返回值类型为空时就写void,其他的返回值类型还有整型(int)、浮点型(float)等。参数说明可以为整型(int)、浮点型(float)等,为空时就写void
例:一个只定义了main()函数的简单JC程序。
int main(void)
{
cls();
printf("HELLO");
}
数据对象
C程序设计中变量和常量是基本的数据对象。在C程序的数据定义部分,需列出要使用的变量,并声明其类型,必要时还需设置初始值。
1、变量
C语言中,可以在函数外(在任何一对花括号之外)或函数体内定义变量。通常,变量以如下形式定义:
<类型> <变量名>;
例:int a;  定义了一个整型变量a
或:
<类型> <变量名>=<初始值>;
例:float P=2.0;  定义了一个浮点型变量P,并初始化为2.0
变量名必须由英文字母或下划线开始,区分大小写 C语言的关键字,如ifwhile等不能用于变量名。此外,变量名和函数名不能相同。
变量在定义时若不给出初始值,变量初始值则为零。
2、常量
  常量是指程序运行过程,其值不能被改变的量。常量在使用时,根据不同的需要使用不同的类型:
a、整型常量
整型常量可定义为十进制形式(如,255-1)。可定义为使用"0x"前缀的十六进制形式(如,0x1fff),还可定义为一种非标准但常用的,使用"0b"前缀的二进制形式(如,0b2002001),但不支持使用零前缀的八进制常量。
b、长整型常量
通过在十进制整数后加上后缀" L "" l "(字母L的大小写)可创建长整型常量。例如,0L是长整型的零。虽然"L"的大小写均可使用,但大写形式更具有可读性。
c、浮点数型常量
浮点数可使用科学计数法 (, " 10e3" "10E3") 或用小数点分段。例如,浮点数零可以"0.""0.0""0E1"的形式给出,而不能仅仅用"0"。由于能力风暴智能机器人无浮点运算硬件,浮点运算将比整型运算慢,要节省地使用浮点运算。
d、字符型与字符串型常量
单引号括起的字符型常量的值是其ASCII码值 (: 'x',它的值是120)。字符串型常量用成对的双引号定义,如,"This is a robot."
eNULL
NULL是一个特殊常量,NULL具有零值,可对指针或数组变量赋值,或进行比较(将在后面说明)。通常,其它常量是不能转成指针类型,所以很多情况下要用到NULL
3、数据类型
a16位整型
16位整型由int类型标识符表示。其取值范围从-32,768+32,767(十进制数)
b32位整型
32位整型由long类型标识符表示。其取值范围从-2,147,483,648+2,147,483,647(十进制数)
c32位浮点型
32位浮点型由float类型标识符表示。约有七位有效数字,其范围从10^-3810^38
d8位字符型
8位字符型是由char类型标识符表示,字符的取值一般是标准ASCII字符集中的可打印字符,但不是绝对的。字符型变量可表示任意的8位整数。
e、指针
C代码中的指针是表示内存地址的十六位整数。处理内存中变量值的方式有计算、传递以及通过指针引用其在内存中的地址。
f、数组
数组用于储存同类型的数据序列(即所有的数组元素有相同的数据类型)。定义数组时需指定其长度(即数组元素的个数)。数组中的元素可像其它变量一样进行设置和存取。
语句与表达式
语句是组成C程序基本成分之一,包括表达式、赋值、函数调用或控制语句。表达式组合变量及常量产生新值。运算符施加于特定类型对象之上,指明了将如何对它进行处理。
1、运算符
每种数据类型都有自己的运算符集以决定可以对其采用的运算。
a、整型运算
整型数支持以下运算:
算术运算    加法+,减法-,乘法*,除法/
比较运算    大于>,小于<,等于==,大于等于>=,小于等于<=,不等于!=
位运算    按位或 |,按位与 &,按位异或 ^,按位取反 ~
布尔运算    逻辑或 | |,逻辑与&&,逻辑非 !
C语句在使用布尔值时,总是把整数零作为假(false),任何非零值作为真(true)。布尔运算符
返回零作为假,而返回1作为真。
布尔运算符 && | |一旦得到最终表达式的结果,就会终止整个表达式的计算。例如,在表达式 a&&b 中,若a是假,则结果必为假而无需计算b,因而该 && 运算符不会对b求值。
b、长整型
整型运算所支持的运算符集中部分可用于长整型:算术加+,算术减-,算术乘*,及整型比较运算符。长整型不支持位运算,布尔运算及算术除法。
c、浮点数
浮点数运算包括算术运算,三角运算及对数运算。由于浮点运算由软件实现,它们比整型运算慢了许多。若从性能考虑,建议少用浮点运算。浮点运算支持如下类型:
算术运算    加法+,减法-,乘法*,除法/
比较运算    大于>,小于<,等于==,大于等于>=,小于等于<=,不等于!=
数学函数    JC支持的三角运算,对数运算和指数运算。详情见浮点运算函数部分。
2、赋值运算与表达式
最基本的赋值运算符是“=”。下面的语句将a的值加2
a = a + 2;
简写形式  a + = 2; 可执行同样的操作。
同样的用法的运算符有:
+  -  *  /  %  <<  >>  &  ^  |
a、自增运算符与自减运算符
自增算符"++"对变量进行增量操作。例如,语句"a++"等于"a=a+1""a+=1"
使用自增运算符的语句是有值的。例如,语句
a=3;
printf("a=%d ++a=%d", a, ++a);
会显示"a=3 ++a=4."。由此可知,++a是先执行"a=a+1"的操作,再将它的值打印出来。
若自增运算符放在变量名后,则先计算表达式的值,再进行自增操作。则如下语句
a = 3;
printf("a=%d a++=%d", a, a++);
会显示 "a=3 a++=3" 但此语句执行后a的值已是4
自减运算符"--"的使用类似于自增运算符。
b、数据存取运算符
&”:单个的 & 符号用于对变量和数组的引用,返回其在内存中的地址。该运算符不能用于在内存中没有固定地址的表达式。
*”:表达式中的单个 * 符号用于返回指针所指变量的值。这种操作称为“间接引用”。
3、运算优先级和次序
下面简要地给出C运算符的优先级与结合原则。越排在前面的运算符其优先级越高。同行的运算符优先级相同,运算次序由结合方向决定。
运算符
结合方向
() []
自左向右
!  ~  ++  --  - ( 类型 )
自右向左
*  /  %
自左向右
+  -
自左向右
<<  >>
自左向右
<  <=  >  >=
自左向右
==  !=
自左向右
&
自左向右
^
自左向右
|
自左向右
&&
自左向右
||
自右向左
=  +=  -= *=  /=  %=  >>=  <<=  &=  ^=  |=
自右向左
,
自左向右
例如:a = b + a * 3 / 4 – c;
运算次序是:先计算 a * 3 / 4,再计算b + ,之后计算 – c,最后是把计算结果赋值给a
控制语句
1、控制语句
单个的C语句以分号结束。一组语句可用花括号组合成复合语句块。语句块内可定义局部变量。
2、If…或Ifelse
if…语句用于判断是否执行某些语句,其语法为:
if (表达式)
    { 语句;}
ifelse 语句用于选择,其语法为:
if (表达式)
    { 语句1}
else
    { 语句2}
该语句执行时,先计算if后面的表达式,若表达式的值不等于零(如逻辑真),则执行语句1;若表达式的值等于零,则执行语句2
3、While
while语句用于循环,其语法为:
while (表达式)
  { 语句;}
while 开始就先计算表达式的值,若为假(零),则跳过语句;若为真(非零),则执行语
句。然后再次计算表达式的值,执行同样的检查,直到表达式值为零,终止循环。
C中用while很容易创建永远循环,如:
while (1)
  { 语句;}
这是因为表达式的值为1,永真的缘故。
4、For
for语句用于循环,其语法为:
for (表达式1;表达式2;;表达式3)
  { 语句}
它等同于如下的while循环:
表达式1
while (表达式2) {
  语句;
  表达式3
}
典型地,表达式1为赋值操作,表达式2为相关的表达式,表达式while语句怎么用自然语言3为某种方式的自增或自减操作。例如,如下代码从0计数到99,并同时输出各数字:
int i;
for (i= 0; i < 99; i++)
  cls();
printf("%d", i);
  wait(0.1);
5、Break/continue/return
break用于在whilefor循环中提前终止循环或跳出死循环。
Continue用于在whilefor循环中跳过此代码之后的语句,继续执行下一次循环。
Return用于直接退出主程序或子函数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。