1.低精度数可以存入高精度变量,此处精度指的是小数点后的情况,而非数据类型;
2.斐波那契数列的崩溃问题还没有解决;
3.字符串:
过去涉及字符时,要对单一字符进行操作,当有多个字符要同时进行操作,单一的字符变量就不能实现,此时应当使用字符串。字符串是数组的一种表现形式。
例:char s[5]={“aasd”};是字符串 char s[5]={“a”};也是一个字符串
实际上,每一个字符串在其结束的位置都有一个\0并占一个元素位置,若想定义一个空的字符串可以写作:char s[5]={“\0”};
输出字符串的时候,写作:printf(“%s”,s);这里应当注意,上面提到的\0时printf输出函数的终止字符,当printf()输出过程中遇到该字符会停止输出;
当字符串溢出时,如char s[5]={“aasas”}即报错,如上所述,字符串都会在定义的内容后补一个\0并占一个元素位置,所以字符串所能容纳的元素数量为定义中的数量-1;
当字符串未满时,在定义内容后全补\0,该字符码值为0
字符串输入时,若使用scanf函数,写作scanf(“%s”,ss);不用取地址符。使用scanf输入字符串时,若超过字符串长度,则计算机从暂存到内存覆盖的过程失败,但暂存中还存在该数据,所以依然可以输出,并且长度与输入相同。
字符串转到单一字符:当做数组处理即可,比如数组第一位写作s[0];
4.getchar()函数,输入字符;putchar()函数,输出字符;
gets()函数,获取字符串;puts()函数,输出字符串。注意,puts()函数输出结束后会自动换行。
相似地,两个实用函数
getch()函数,从控制台读取一个字符但不显示在控制台;
getche()函数,从控制台读取一个字符并回显
这两个函数在c++环境下,应预处理包含头文件conio.h。但在c环境下,可以在stdio.h头文件中直接使用。
5.几个直接处理字符串的函数:
memcmp(s1,s2.4)即memcmp(字符串1,字符串2,要比较的长度x),函数返回值:若s1较大,返回值为1,相同返回0,s2大返回-1。逐个比较,出现结果直接返回并结束比较;比较次数为括号中第三位的数字x;
strcmp(s1,s2)即strcmp(字符串1,字符串2),返回值:若s1较大,返回值为1,相同返回0,s2大返回-1。逐个比较,出现结果直接返回并结束比较;比较次数为整体比较,直到字符串结束;
memcpy(s1,s2,4)即memcpy(字符串1,字符串2,项数x),用于把s2的前x项复制到s1
strcpy(s1,s2)即strcpy(字符串1,字符串2),用于把s2复制到s1,并忽略项数;
strcat(s1,s2)即stract(字符串1,字符串2),用于把字符串2接到字符串1后;
strlen(s)返回值:字符串s的长度;