一.运算符
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"); }
输出结果:
形式参量:函数声明的那个参数,如上的int类型的n;
实际参数:函数调用传递的那个值.
因此,在上述程序中,函数调用pound(times)把实际参数times值10传递给函数,然后函数把10形式参量n.
函数变量名时局部的,因此一个函数定义的名字不会和其他地方相同名字发生冲突.