C 语言——运算符、表达式和语句

时间:2021-12-22 01:43:43

一.运算符

 1.基本运算符

除了+、-、*、/、=、正负号(+、-)外,c没有指数函数,因此,标准c的数学库提供了一个pow()函数。例如:pow(3.5,2.2)返回3.5的2.2次幂。

 2.其他运算符

sizeof运算符(前面已讲);

%(取模):用于整数运算,不要对浮点数使用,将是无效的;

++、--(增量和减量):表示自增1。

int a=1,b=1; int aplus,plusb;

aplus
=a++; //后缀:先使用a的值再自增1;
printf("%d %d\n",a,aplus); plusb
=++b; //前缀:先自增1后的b值再使用;
printf("%d %d\n",b,plusb);
printf("%d %d %d %d\n",a,a++,b,++b);

 输出结果:

2       1

2       2

3       2       3        3     

无论怎样,离开了当前语句后该值都增加了1个单位,故在输出语句中,再一次使用了增量运算符的效果是在上衣语句的结果基础之上

减量的规则与在增量相同,不再一一赘述。

 

二.类型转换

 1.在包含两种数据类型的任何运算,两个值都被转换长其中较高的级别;

 2.类型级别从高到低:long double ,double ,float ,unsigned long long ,long long ,unsigned long ,long ,unsigned int ,int.

当long和int具有相同大小时,unsigned int比long的级别高;(char和short都将被提升为int类型,float被提升为double类型)

 3.赋值语句里,计算的最后结果被转换为被赋予值的变量的类型;

 4.可通过函数原型来阻止自动提升;

 5.当浮点类型降级为整数类型时,它们被趋零截尾或舍入

 

三.带有参数的函数

#include<stdio.h>
void pound(int n);   //没有返回值,接受一个int类型的参数 
int main(void) { int times=5; char ch='!';     //ASCII码值为33 
    float f=6.0; pound(times); //int参数 
    pound(ch);       //char参数自动转换为int类型 
    pound((int)f);   //指派运算符把f强制转换为int类型 
    return 0; } void pound(int n) { while(n-->0) printf("#"); printf("\n"); }

输出结果:

C 语言——运算符、表达式和语句

 

形式参量:函数声明的那个参数,如上的int类型的n;

实际参数:函数调用传递的那个值.

因此,在上述程序中,函数调用pound(times)把实际参数times值10传递给函数,然后函数把10形式参量n.

函数变量名时局部的,因此一个函数定义的名字不会和其他地方相同名字发生冲突.