@yy0518
2016-03-11T09:08:42.000000Z
字数 2056
阅读 695
C语言学习笔记
1使用C的方式,即数组,合并两个字符串,并测量字符串长度。
不明白什么是以数组的方式,于是就用了字符串函数。。程序如下:
#include"stdio.h"#include"string.h"int main(){char ff[50],yy[50];printf("Please input char 1: ");gets(ff);printf("%s\n",ff);printf("Please input char2 : ");gets(yy);printf("%s\n",yy);printf("char1+char2 : ");strcat(ff,yy);puts(ff);printf("The lenth of char1+char2 : %d\n",strlen(ff));}
2 目前还木有找到修改错误的方法,虽然我觉得将就还是可以用的
还是按照书的顺序吧,现在应该是到第五章了
1 基本运算符
(1)赋值
赋值操作是按照从右到左的顺序,如:连续赋值a1=a2=a3=520;是先把520赋值给a3,然后将a3的值即520赋值给a2,再将a2的值赋值给a1。
(2)除法
除法运算符用于整数和浮点数的区别:整数之间相除的结果仍为整数,当除不尽时,对结果进行截尾而不是四舍五入,如5/4结果为1,4/5结果为0;
浮点数之间以及浮点数和整数之间相除的结果仍为浮点数。
(3)负数取模
负数的取模运算%:趋零截尾,也就是如果被除数是正数,则取模值为正数;如果被除数是负数,则取模值为负数。这个规则看着很不眼熟,还以为很复杂,但突然发现其实并不会弄错,因为除法运算不会弄错,除法的结果知道了,自然也知道余数了。如13/-3值为-4,则余数为1,则13%-3值为1;-13/3值为-4,余数为-1,则-13%3值为-1;-13/-3值为4,余数为-1,则-13%-3值为-1.
(4)++和--
a++或者++a确实比a=a+1;用起来要高端、简洁得多。尤其是用在循环中,像在while()中控制循环条件:while(++a<22).
使用时要注意自增、自减运算符作为前缀和后缀的区别。
注意:对于a++的形式,左侧只能有一个变量,对于(a*b)++或者(2*a)++的形式编译出来都会有错误。也就是说++和--只能改变一个单独的变量的值,不能实现对一个表达式进行运算;
在调用函数时用到了一个变量的多个不同的值,不要随便对这个变量用自增或自减运算符,如果你不清楚该函数对参数处理的顺序;
【PS:】
2 表达式和语句
表达式就是由操作数和运算符组成的,操作数可以是常量或者变量,并且每个表达式都有一个值。如表达式3*4的值为12,赋值表达式a=55值为55。像逻辑表达式如a==55的值则为0或1;
语句则是程序的基本组成部分,就我看来,但凡是基本语句后面必有一个分号,没有分号的就不能称之为一个基本语句。常用的基本语句有赋值语句(a=22;)、声明语句(int a;)、函数语句(scanf(yy);)等。还有复合语句,所谓复合语句就是用大括号括起来的两个或两个以上的语句,通常也称为代码块。
3 类型转换
强制类型转换就不说了。当表达式中出现不同类型的常量或者变量时,编译器可能就会完成自动类型转换。
(1)当表达式中出现有符号或者无符号的char或short类型时,会自动转换成int型,当unsigned short 比int大时,还有可能会自动转换成unsigned int型。
(2)当两个不同类型的值在同一个表达式进行计算时,会将两种类型都转换成级别较高的类型。类型级别从高到低为:long double,double, float,unsigned long long ,long long ,unsigned long ,long ,insigned int ,int.在有些编译系统中,可能long和int一样大,此时unsigned int比long的级别高。
(3)级别的提升并不会有什么损失,应该注意的是级别的下降可能会导致所得结果不准确,或者精度损失。
是我写得太简略了麽。。第五章结束了居然还不够。。第六章走起
C语言程序结构化设计,有三种最常用的结构:顺序、循环、分支。顺序就不又用说了,本章主要是介绍循环结构。
4 while()语句
一般形式为:while(expression) statement
statement可以是一条简单的基本语句,也可以是复合语句。
括号中的expression为循环是否继续、即是否执行statement的条件表达式,如果表达式的值为真(非0),则执行statement,否则不执行且跳出该循环,执行while()循环后的下一条语句。如果expression的值始终为真如while(1),则while()形成一个死循环,始终持续执行statement语句。
1 计算机最多能够处理多大的正整数?
2 自增、自减运算符除了比a=a+1;的代码看起来更简洁之外还有什么好处吗?
3 为什么main()函数需要一个返回值?