9月22日日结,28不懂,数据转换有问题

C语言中,数组初始化的方式主要有三种:

1、声明时,使用 {0} 初始化;

2、使用memset;

3、用for循环赋值。

char str[100]
memset(str,sizeof(str),0);

这是用memset函数进行数组的初始化

int cot=0,ans[100]= {0},i=0; 

这是今天遇到的知识用{0}对数组初始化的例子

在初始化的时候{0}实际上是调用了memset函数对数组初始化
相对于前两种初始化方式,for循环初始化最慢这里不再举例

while ((c=getchar())!='.')

做单词长度题的时候,要求最后一位为.的时候结束
这里这个while循环用的是c=gerchar()当为’.'的时候循环结束
改成for循环

for(;c=getchar();c='0')

是否成立等待测试

标识符分为关键字,预定义标识符和自定义标识符
算法的五大特性 有穷性,确切性,可行性,零或多个输入,一个或多个输出

构造数据类型有三种
数组类型
结构体类型
共用体类型

单精度变量占4个字节32位的内存空间,只能提供7位有效数字
双精度变量占8个字节64位的内存空间,可以提供16位有效数字

十进制整数没有前缀
八进制整数以数字开头
十六进制整数以数字+x或X表示

指数形式aEn其中a位十进制数,n位十进制证书,其值位a*10的n次方
阶码不能为小数,E后面的是阶码

c语言中,可以用一个标识符来表示一个常量,称之为符号常量.一般形式为
#define 标识符 常量
上面也是一条预处理命令,成为宏定义命令,一经定义在程序中所出现该标识符的地方均代之以该常量的值
习惯上符号常量的标识符均用大写字母,变量表示服用小写字母以区别表示

printf(格式控制字符串,输出参数,输出参数n);

%d以十进制输出整数
%o以八进制输出整数
%x以十六进制输出整数
%u以无符号十进制输出整数
%c以字符形式输出一个字符
%s输出字符串
%f或%lf以小数形式输出浮点数,保留小数点后6位
%m.nf其中m,n位正整数,输出浮点数的总宽度为m,包括小数点,保留n位小数,少补多实际,只可用于输出函数.

%多少,叫做格式转换说明

除了printf可以输出字符以外,putchar()也可以输出字符,他只有一个参数,可以是字符型变量,也可以是字符型常量

变量使用前必须要对他进行初始化,不然变量的值是随机的
初始化的方法有两种,第一种在头部进行初始化,第二种使用scanf对其初始化

scanf(格式控制字符串,输入参数,输入参数n)

除数组外变量名前都要加取地址运算符&

存储单元

除了使用scanf("%c",&c)还可以使用getchar函数例如
ch=getchar()

如果使用键盘输入多个字符形数据是,输入的字符之间不能有间隔,如果使用了间隔符(如空格回车等),由于它们本身也是字符,该间隔符就被作为输入字符赋值给相应的变量

scanf输入参数必须代表地址,方式为&变量名,而printf()函数的参数可以为常量,变量以及合法的表达式

scanf的格式控制字符串中的普通字符必须按原样输入

输入多个数据是可以以空格间隔开比如scanf("%d%d,&a,&b),可以输入3 4回车

++i是立即自加1,i++是先用i的值,稍后再自增1

逗号运算时自所向右,并且把最后一个的值作为表达式的值

~求反. &按位与 |按位或 ^按位异或 >>右移 <<左移

位运算符的操作对象必须是字符型或者整数型其他的而不是用,所有数据在运算时必须转换成二进制进行运算

~运算符将操作数的每个二进制值位取相反值,既0变1,1变0
按位与运算符& 例如
不懂

类型转换
1.char型和short型参与运算时,先转换成int型
2.unsigned short型转换成unsigned型
3.float型自动转换成double型
4.经过上述准换后仍存在不同的类型时,按照int-unsigned-long-short从低到高转换
5.在赋值运算中,赋值号两边数据的类型不同时,赋值号右边的数据类型将转换为左边变量的数据类型,如果右边数据的长度比左边长是,将四舍五入,丢失一部分数据,这样会降低数据的精度,编译时可能会出现警告

tfr

猜你喜欢

转载自blog.csdn.net/yang8627/article/details/82817700