一、数据类型、常量与变量
1.常量:程序运行过程中不会改变的量;
2.变量:程序运行过程中可以改变的量;变量需先定义后使用;变量又可称为标识符,变量命名的规则:只能由字母、数字和下划线组成,但数字不可以出现在第一个位置上,并且C语言的关键字(保留字)不能用来做标识符。
定义变量的一般格式:数据类型 变量名1,变量名2,...,变量名n;
如 int price;
int price, amount;
int price,amount=100; \price没有被赋值,amount=100\
注意:
- 所有的变量在第一次被使用之前都应该被赋值一次,即变量初始化。
- 两个整数的运算结果只能是整数,一次运算精度较低的转换成精度较高的类型
- 如:10/3.0*3=10.0
- 10/3*3.0=9.0(有待补充)
存储类型(数据类型):决定程序执行中变量占用内存的情况
类型 | 关键字 | 长度(字节) | 取值范围 |
基本整型 | int | 4 | -2147483648~2147483647 |
长整型 | long [int] | 4 | -2147483648~2147483647 |
短整型 | short [int] | 2 | -32768~32767 |
无符号整型 | unsigned [int] | 4 | 0~4294967295 |
无符号长整型 | unsigned long | 4 | 0~4294967295 |
无符号短整型 | unsigned short | 2 | 0~65535 |
类型 | 关键字 | 长度(字节) | 有效位 | 取值范围 |
单精度 | fioat | 4 | 7 | |
双精度 | double | 8 | 15 | |
长双精度 | long double | 8 | 15 |
C语言除整、实型常量外,还有字符型常量又称字符常量(关键字char),它是用一对单引号' '括起来的一个字符;一个字符常量只用1个字节的单元存储;计算机存储的并不是字符本身,而是该字符的ASCⅡ码。例如:字符'a'的ASCⅡ码值为97,转换成二进制(开头数字0正1负)数为01100001,因此把字符'a'存放到内存中,实际上是把01100001存放在内存中。
- 注意:
- 大小写字符代表不同的字符,如'A'不同于'a'。
- 空格也是一个字符,如' '。
- 字符常量的单引号中只能有一个字符,也不能用双引号(" ")。
字符形式 | 含义 | ASCⅡ代码 |
\0 | 输出空值,无实际意义,表示一个字符串结束 | 0 |
\n | 换行,将光标移到下一行的开始位置(回车换行) | 10 |
\t | 光标横向移动一个Tab键位(一般为8列) | 9 |
\b | 光标向前移动一列(一个字符) | 8 |
\r | 光标移到本行的开头(回车) | 13 |
\f | 光标移到下一列的开头 | 12 |
\\ | 输出反斜线字符“ \ ” | 92 |
\' | 输出单引号字符“' ” | 39 |
\" | 输出双引号字符" " " | 34 |
\ddd | 输出1到3位八进制数代表的字符(如:printf("\101"); 第一个数字不能用0开头) | |
\xhh | 输出1到2位十六进制数代表的字符 |
注意:转义字符一般用在printf( )函数中,一般不在scanf( )函数中,否则可能会导致输入错误。
二、运算符、表达式和语句
- 运算符:
1.算术运算符:+ - * / %
2.赋值运算符:=及其复合赋值运算符 ++ -- += *= -=等(示例:a+=b;即a=a+b; d*=1+2;即d=d*3)
注意:
int x=6;
x++; \x=7\
++x; \x=8\
--x; \x=7\
x--; \x=6\
x=1;
y=x++; \y=x,x=x+1\
x=1;
y=++x; \x=x+1,y=x\
3.关系运算符: > < >= <= ==(等于) !=(不等于)(前四个优先级相同,后两个优先级相同,但前四个优先级高于后两个)
4.逻辑运算符:!(逻辑非,运算方向 自右向左!) &&(逻辑与,自左向右) ||(逻辑或,自左向右),优先级: !>&& > || 。逻辑运算符只有真假两种,ture-1; false-0(如 28&&16=1,逻辑表达式,非0的数都是真的,只有0是假的,具体运算还有待补充),逻辑运算符为单目运算符,优先级最高。
5.位运算符:~ << >> & | ^
位运算符 | 意义 |
~ | 按位取反 |
<< | 位左移 |
>> | 位右移 |
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
区别:28&&16=1;(逻辑表达式,非0为真)
28&16;(位表达式)
28:00011100
16:00010000
& 00010000(有待补充)
6.条件运算符:? :结合方向:从右往左;属于三目运算符
例:表达式1?表达式2:表达式3
求解过程:先判断表达式1的值,如果为真,返回表达式2的值,否则,返回表达式3的值
一个运算符能连接的对象(包括常量、变量、函数等)的个数称为“目”,分为三类:
- 单目运算符:即只能连接一个操作对象的运算符。如: ++、--、!、&等
- 双目运算符:必须连接两个操作对象的运算符。如:+、-、*、/、=、>、>=、!=、+=等
- 三目运算符:连接3个操作对象的运算符。C语言只有一个三目运算符,即条件运算符“? :"
优先级:单目运算符>算术运算符>关系运算符>逻辑运算符>条件运算符>赋值运算符
结合方向:从右往左:单目运算符、三目运算符、赋值运算符
三、格式化输出函数printf( )
printf( )函数的作用是把数据按指定格式输出到屏幕上,其一般调用格式为:
printf("格式控制字符串“,变量列表);
例如:printf("I=%d,F=%f,C=%c\n",i,f,c);
数据类型 | 格式字符 | 格式控制字符 | 含义 |
d或i | %d或%i | 输出带符号的十进制整数 | |
整型 | u | %u | 输出无符号的十进制整数 |
o | %o | 输出八进制无符号整数 | |
\ | x或X | %x或%X | 输出十六进制无符号整数(大小写作用相同) |
字符 | c | %c | 输出一个字符 |
字符串 | s | %s | 输出一个字符串 |
实型 | f | %f | 以小数形式或指数输出实数(单精度float浮点数有效位一般为7位,double为15位) |
e或E, g或G | %e或%E %g或%G | 与f格式作用相同,e与f,g可以相互互换(大小写作用相同) |
printf("%m.nd",变量名)(*代表空格)
例如:
int x=5;
printf("%6d",x); \*****5\
int x=5
printf("%5.3d",x); \**005\
float y=5.3;
printf("%6.2f",y); \**5.30\
float y=5.3;
printf("%-6.2df",y); \5.30**\
四、格式化输入函数scanf( )
scanf( )函数用于接收从键盘上输入的数据,输入的数据可以是整型、实型、字符型等。一般格式:scanf("格式控制字符串”,,变量地址列表);
如:
int a;
scanf("%d",&a);
- 注意:
- scanf( )函数中的格式控制字符串怎么写就得怎样输入,否则就会出错!因此,scanf( )函数最好简洁。
- 当格式符中只有%f或%d或同时有%d和%f时,输入数据间用空格、Tab键、Enter键作数据分隔标志。
- 当格式中有%c时,输入时不能加任何分隔符,如空格、Tab键、Enter键。
- 当写完一个程序发现出错时,可以先检查scanf( )函数。
整数型:
- int
- printf("%d",....);
- scanf("%d",....) ;
实数型:
- double
- printf("%f",....);
- scanf("%lf",....);
仅供参考,如有错误,还请指正!