一 不同数据类型的存储方式
1 整数
一个存放整数的存储单元,左边第一位用来表示符号
2 实数
在计算机中一般以4个字节存储一个实数。这4个字节分为两个部分:一般以3个字节存放数值部分(包括数符),以1个字节存放指数部分。
3 字符
计算机并不是将字符本身存放到存储单元中(存储单元只能存储二进制信息),而是将字符的代码存储到相应的存储单元中。
二 字符数据与整型数据在一定条件下可以通用
Char c=”a”;
Char c=97;
字符数据既可以以字符形式(%c格式)输出,也可以以整数形式(%d格式)输出。按字符形式输出时,系统先将存储单元中的ASCII码转换成相应字符,然后输出 ,按整数形式输出时,直接将ASCII码作为整数输出。
三 ‘a’和”a”得区别
C编译系统在处理字符串时,在每一个字符串常量的结尾加一个字符’/0’,作为字符串结束的标志。’/0’是一个ASCII码为0的字符,即NULL,是“空操作字符‘,即它不引起任何控制动作,也不是一个可显示的字符。不要把其中的’/0’误写为0,两者的含义是不同的。’/0’的ASCII代码为0,而数字字符0的ASCII代码为48。
字符串”a”实际上包含2个字符:’a’和’/0’,这是他们的区别。
四 程序风格
1 在程序中尽量少用数值常量,多用符号常量,以增加程序的可读性和可维护性。
五 易忘知识点
1 强制类型转换
(类型名)(表达式),如:(double)a
六 求补码的方法
计算机不论对正数和负数都按“补码“形式存放在存储单元
1 正数
补码就是该数的“原码“(该数的二进制形式)。
2 负数
(1)取该数的二进制形式,他就是原码。
(2)对该原码逐位取反,得到其“反码“。
(3)将得到的反码加1。
七 赋值表达式和赋值语句
赋值表达式的末尾没有分号,赋值语句的末尾必须有分号。
在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。
八 字符数据的输入输出
1 用putchar函数输出一个字符
putchar(a);
2 用getchar函数输入一个字符
getchar()
实例
char a=getchar();putchar(a);
3 用printf和scanf
基本的格式字符 %d,%c%s(输出一个字符串)%f%e(以指数形式输出实数)%u(unsigned型变量)。%md(用来输出数据的宽度为m的数) %ld(输出长整型数据)
%o(八进制输出) %x(十六进制) %mc(宽度为m的字符数据) %ms(指定输出的字符串占m列) %g (用来输出实数,它根据数值的大小,自动选f格式或e格式)
如果要输出字符%,则应该在“格式控制“字符串中用连续两个%表示
1 连续输入数据时,在两个数值之间需要插入空格(或其他分隔符),以使系统能够区分两个数值。连续输入字符时,在两个字符之间不要插入空格或其他分隔符。系统能 区分两个字符。
2 在输入数值数据时,空格、回车、Tab键或遇非法输入,则认为该数据结束。
Scanf(“%d%d”,&a,&b) 输入123a12a,则认为a为123,b为12
九 无符号数据与有符号数据之间的赋值
无符号整型变量不能用%d格式符,而要用%u格式符
十 continue和break区别
Continue只结束本次循环,而不是终止循环语句的执行(注意用词意思);break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。