02c语言_注释和基础编译

注释: 单行注释 // 多行注释 /* ... */

/*
*Copyright(c) 2019 xyy.com
*文件名: hello_word.c
* 描述: 运行程序后再终端上输出制定内容
*作者: xyy
* 完成日期: 2019.9.10
* 当前版本: 1.0
*/

 

1 编译生成二进制文件:           -o  二进制文件

gcc -o hello_world.o       -c hello_world.c

2编译生成可执行文件:

gcc -o hello_world hello_world.o

 

3常用的方法:

gcc -Wall -o  bin/hello_world     src/hello_world.c

 4数据类型:

 

 

short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。

在不同的系统上,这些类型占据的字节长度是不同的:

在32 位的系统上

short 占据的内存大小是2 个byte;
int占据的内存大小是4 个byte;
long占据的内存大小是4 个byte;
float占据的内存大小是4 个byte;
double占据的内存大小是8 个byte;
char占据的内存大小是1 个byte。

具体可以用sizeof测试一下即可。

short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型

 

关系运算符和表达式

 


在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。

(1)关系运算符及优先次序
在C语言中有以下关系运算符:
1.< 小于
2. <= 小于或等于
3. > 大于
4. >= 大于或等于
5. == 等于
6. != 不等于

在六个关系运算符中,<,<=,>,>=的优先级相同,高于== 和!=,==和!=的优先级相同。

(2)关系表达式
关系表达式的一般形式:表达式 关系运算符 表达式

例如:
a+b>c-d
x>3/2
‘a’+1<c
-i-5*j==k+1
都是合法的关系表达式。由于表达式也可以又是关系表达式, 因此也允许出现嵌套的情况。

例如:
a>(b>c)
a!=(c==d)

关系表达式的值是真”和“假”,用“1”和“0”表示。

例如:
5>0 的值为“真”,即为 1。
(a=3)>(b=5)由于 3>5 不成立,故其值为假,即为 0。

 

 

逻辑运算符和表达式

(1)逻辑运算符及优先次序
C语言中提供了三种逻辑运算符:

&& 与运算
|| 或运算
! 非运算
与运算符"&& “和或运算符”||“均为双目运算符。具有左结合性。非运算符”!"为单目运算符,具有右结合性。

“&&”和“||”低于关系运算符,“!”高于算术运算符。
按照运算符的优先顺序可以得出:

a>b && c>d 等价于 (a>b)&&(c>d)
!b==c||d<a 等价于 ((!b)==c)||(d<a)
a+b>c&&x+y<b 等价于 ((a+b)>c)&&((x+y)<b)

(2)逻辑运算的值
逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。

与运算 &&:参与运算的两个量都为真时,结果才为真,否则为假。
或运算||:参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。
3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。
(3)逻辑表达式
逻辑表达式的一般形式:表达式 逻辑运算符 表达式
其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。

例如:
(a&&b)&&c
逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”

 

 

if 语句

(1)if 语句的三种形式
1.if (表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。

2.if-else

if(表达式)
语句1;
else
语句2;

其语义是:如果表达式的值为真,则执行语句 1,否则执行语句 2 。
3.if-else-if

if(表达式 1)
语句 1;
else if(表达式 2)
语句 2;
else if(表达式 3)
语句 3;

else if(表达式 m)
语句 m;
else
语句 n;

其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个 if 语句之外继续执行程序。 如果所有的表达式均为假,则执行语句 n。然后继续执行后续程序。

(2)条件运算符和条件表达式
条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。
由条件运算符组成条件表达式的一般形式为:

表达式1 ? 表达式2: 表达式3

其求值规则为:如果表达式 1 的值为真,则以表达式 2 的值作为条件表达式的值,否则以表达式 2 的值作为整个条件表达式的值。

注意:
1.条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。

例如:

max=(a>b)?a:b

可以去掉括号而写为

max=a>b?a:b

条件运算符?和:是一对运算符,不能分开单独使用。
条件运算符的结合方向是自右至左。
例如:

a>b?a:c>d?c:d

应理解为

a>b?a:(c>d?c:d)

这也就是条件表达式嵌套的情形,即其中的表达式 3 又是一个条件表达式。

 

 

switch 语句
C语言还提供了另一种多分支选择的switch语句,其一般表达式为:

switch(表达式)
{
case 常量表达式 1: 语句 1;
case 常量表达式 2: 语句 2;

case 常量表达式 n: 语句 n;
default : 语句 n+1;
}

其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case 后的语句。如表达式的值与所有 case 后的常量表达式均不相同时,则执行 default 后的语句。

 

循环结构

C语言提供三种循环结构,分别为while循环,do while循环和for循环。其一般式如下: 

while语句 
总体注解: 
while语句创建一个循环,该循环在判断表达式为假(或0)之前重复执行。while语句是一个入口条件(entry-condition)循环,在进行一次循环之前决定是否要执行循环。因此有可能一次也不执行。循环的语句部分可以是一个简单语句或一个复合的语句。 
while(表达式) 

循环体语句 

在表达式为假(或0)之前重复执行statement部分。 
例子 

   

1
2
3
4
while(i++<10)
{
    printf(“count %d ”,i);
}

    

do while 语句 
总体注解: 
do while语句创建一个循环,它在判断表达式为假(或0)之前重复执行。do while语句是一个退出条件循环,在执行一次循环之后才决定是否要再次执行循环,因此循环至少要被执行一次。循环的语句部分可以是一个简单的语句或一个复合语句。 
形式 
do 

循环体语句 
}while(表达式); 
在表达式为假(或0)之前重复执行循环体语句 
例子 

   

1
2
3
4
do
{
    printf("count %d",i);
}while(i<20);

    

for语句 
总体注释: 
for语句使用由分号隔开的三个控制表达式来控制循环过程。初始化表达式只在开始执行循环语句之前执行一次。如果判断表达式为真(或非0)就执行一次循环。然后计算更新表达式并再次检查判断表达式的值。for语句是一个入口条件循环,在进行一次循环之前决定是否要执行循环,因此有可能循环一次也不执行。循环的语句部分可以是一个简单的语句或一个复合语句。 
形式 
for(初始化表达式;判断表达式;更新表达式) 

循环体语句 

循环在判断表达式为假(或0)之前重复执行。 
例子

   

1
2
3
4
for(i=0;i<100;i++)
{
    printf("i count is %d\n",i);
}

   

 

 

posted @ 2020-04-28 21:41  岁月荏苒¥我心依旧  阅读(216)  评论(0编辑  收藏  举报