C语言入门第四天主要学习第五章内容:
笔记代码如下所示:
主要包括:
1.关键字:while,typedef
2.运算符:=-*/以及++和–
3.简单的while循环
4.复合语句,类型转换和类型指派操作
5.如何编写带有参数的简单函数。
#include <stdio.h>
//不同数据类型值做除法运算
/* int main(void)
{
//%d
printf("integer division: 5/4 is %d\n",5/4);//integer division: 5/4 is 1
printf("integer division: 6/3 is %d\n",6/3);//integer division: 6/3 is 2
printf("integer division: 7/4 is %d\n",7/4);//integer division: 7/4 is 1
//%.2f,C语言中避免使用混合类型去运算,如下例
printf("integer division: 7/4 is %.2f\n",7/4);//integer division: 7/4 is 0.00,错误
printf("integer division: 7.0/4 is %.2f\n",7.0/4);//integer division: 7.0/4 is 1.75
printf("mixed division: 7.0/4.0 is %.2f\n",7.0/4.0);//mixed division: 7.0/4.0 is 1.75
//趋零截尾
printf("-7/4 is %d\n",-7/4);//-7/4 is -1
return 0;
} */
//运算符优先级:()> +-(一元运算符) > */ > +-(二元运算符)> =
/* int main(void)
{
int top,score;
top = score = -(2 + 5)*6 + (4 + 3 * (2 + 3));
printf("top = %d\n",top);//top = -23
return 0;
}
*/
//sizeof运算符已字节为单位返回其操作数的大小
//sizeof返回size_t类型的值,这是一个无符号整数类型
/*
int main(void)
{
int n = 0;
//typedef机制允许为一个已有类型创建一个别名
//例如下例将unsigned int 定义一个size_t的别名
//typedef unsigned int sizt_t
size_t intsize;
intsize = sizeof(int);
printf("n = %d,n has %zd bytes:all ints have %zd bytes.\n",n,sizeof n,intsize);
return 0;
} */
//取模运算符%用于整数运算,不要对浮点数进行运算
//把秒转换为分钟和秒
/*
#define SEC_PER_MIN 60
int main(void)
{
int sec,min,left;
printf("convert seconds to minutes and seconds!\n");
printf("enter the number of seconds(<=0 to quit):\n");
scanf("%d",&sec);
while(sec>0)
{
min = sec/SEC_PER_MIN;
left = sec%SEC_PER_MIN;
printf("%d seconds is %d minutes,%d seconds.\n",sec,min,left);
printf("enter next value(<=0 to quit)\n");
scanf("%d",&sec);
}
printf("Done!\n");
return 0;
} */
//如果第一个操作数为负数,那么得到的模也为负数,反之就是正数
/*
int main(void)
{
//在printf()语句中打印%号使用两个%%来打印
printf("11/5 is %d and 11%5 is %d\n",11/5,11%5);//11/5 is 2 and 11 is 1
printf("11/5 is %d and 11%%5 is %d\n",11/5,11%5);//11/5 is 2 and 11%5 is 1
printf("11/-5 is %d and 11%%-5 is %d\n",11/-5,11%5);//11/-5 is -2 and 11%-5 is 1
printf("-11/-5 is %d and -11%%-5 is %d\n",-11/-5,-11%5);//-11/-5 is 2 and -11%-5 is -1
printf("-11/5 is %d and -11%%5 is %d\n",-11/5,-11%5);//-11/5 is -2 and -11%5 is -1
return 0;
} */
//增量和减量运算符:++和--
//不要使用下列语句:b = ++ i;//如果使用i++,b将会有不同的结果
//使用下列语句来代替它:++ i;b = i;
//++和--优先级只比圆括号的低
//不要在函数的参数或表达式中使用增量运算符,否则会带来麻烦
//下面两个原则,避免增量运算符的问题:
//1.如果一个变量出现在同一个函数的多个参数中时,不要将增量运算符用于它上面,例:y = n++ + n++;
//2.当一个变量多次出现在一个表达式中,不要将增量运算符用到它的上面
/*
int main(void)
{
int a = 1,b = 1;
int aplus,bplus;
aplus = a++;//后缀,使用a的值之后改变a的值
bplus = ++b;//前缀,使用b的值之前改变b的值
printf("a aplus b bplus\n");
printf("%d %d %d %d\n",a,aplus,b,bplus);
//a aplus b bplus
//2 1 2 2
return 0;
} */
/*
int main(void)
{
char ch;
int i;
float fl;
fl = i = ch = 'C';//C对应ASCII码值是67
printf("ch = %c, i = %d, fl = %.2f\n",ch,i,fl);
//ch是char类型,1是int型,在包含两种数据类型的任何运算中,两个值都被转换成两种类型里较高的级别。
ch = ch + 1;//67+1=68 ---->int----->char 68---->"D" ch == "D"
i = fl + 2*ch;//2*68 2*68的浮点型+fl---->67.00+136.00=203.00 ---->203整形
fl = 2.0*ch + i;//2.0*68.0+203.00=339.0
printf("ch = %c,i = %d,fl = %.2f\n",ch,i,fl);
//浮点数降级为char类型
ch = 5212205.17;//5212205.17
printf("now ch = %c\n",ch);//打印结果为空
ch = 5212205;//5212205->转换为二进制取低8位,然后对照ASCII表找到对应符号
printf("now ch = %c\n",ch);//打印结果为'-'
return 0;
} */
//强制转换操作
//mice = 1.6 + 1.7;结果为3;
//mice = (int)1.6 + (int)1.7;类型轻质转换
//带有参数的函数
//形参:在下例中,形式参数是叫做n的int类型变量,即声明一个参数就创建了一个被叫做形式参数的变量。
//实参:在下例中,主函数调用pound(times)把times的值(5)赋给n,我们称函数传递一个值,这个值被称为实际参数
void pound(int n);//如果函数不接受参数,圆括号里会填写void
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)//说明该函数接受一个int参数
{
while(n-- >0)
{
printf("#");
}
printf("\n");
}
// #####
// #################################
// ######