数据类型 运算符及表达式
一、数据及表现形式
(一)数据:
(二)数据的表现形式:
1.常量:
1.1.常量概念:
1.2.代码表示:
#include <stdio.h>
#define PI 3.14//无等号 无分号 本质是常量
int main(){
//整形常量
printf("%d",100);
//换行
printf("\n");
//实型常量
printf("%lf\n",3.14);//\n还是换行 此方式使用较多
//字符常量:用''括起来的
printf("%c\n",'c');
//字符串常量,用""括起来
printf("%s\n","china");
//符号常量,用#define定义 见第三行
printf("%lf\n",PI);
return 0;
}
1.3.常量注意事项:
1.3.1.转义字符的具体使用:
printf("abc\n");//\n换行
printf("abc\td");//\t制表符,c后面空4空格才有d
2.变量:
2.1.标识符:
2.2.变量概念:
2.3.变量的实质:
系统分配的空间,空间大小由数据类型决定
2.4.变量的特点:
I.运行期间值可以被改变,系统根据数据类型分配空间
II.可以通过变量名或地址访问内存空间
3.常变量:
3.1.概念:
本质是变量,只不过值不可以被改变
3.2.格式:
在变量前加上const即可:
const int a = 1;
(三)注意事项:
二、进制
(一)定义:
(二)十进制转其他进制:
(三)二进制 八进制 十六进制互转:
(四)C语言中进制的表示:
//十进制输出
printf("%d\n",25);//输出结果:25
//八进制输出
printf("%d\n",025);//输出结果:21
printf("%o\n",025);//输出结果:25
//十六进制输出
printf("%d\n",0x25);//输出结果:37
printf("%x\n",0x25);//输出结果:25
(五)计算机中数值存储方式:
1.源码:
注意事项:
2.反码:
注意事项:
3.补码:
注意事项:
4.C语言练习:
//对于计算机而言,二进制 八进制 十六进制的输入是补码
char a = 0x85;
/*
补码:1000 0101
原码:1111 1011 [补码符号位不变 其他位取反加一]
*/
//以十进制输出a
printf("%d\n",a);
//对于用户而言,十进制的输入是原码
char b = -15;
/*
原码:1000 1111
反码:1111 0000
补码:1111 0001
*/
//以十六进制输出b
printf("%x\n",b);
三、基本运算符与表达式
(一)sizeof运算符:
1.定义及概念:
//注:%d表示有符号输出 %u表示无符号输出
printf("%u\n",sizeof(int)); //4
四、数据类型
(一)基本数据类型:
1.整型:
1.1.整型分类:
注:一个字节 = 8位,也就是1B = 8bit 1KB = 1024B
1.2.整型常用的打印格式:
注意,上表中的%l %ll后面都需要添加d,否则无法输出,可见系列程序书写方式
1.3.C语言演示:
//整型定义和输出[默认]
int a = 123;
printf("%d\n",a);
//短整型定义和输出
short int b = 2;
printf("%hd\n",b);
//长整型定义和输出
long int c = 333;
printf("%ld\n",c);
//双长整型定义和输出
long long int d = 3333333;
printf("%lld\n",d);
1.4.有符号数和无符号数的区别:
注意点:
1.有符号数的最高位是符号位,无符号数的最高位是数值位
2.有符号位使用%d输出,无符号位使用%u输出
3.无符号位只能表示正数
4.如果将无符号位使用%d输出,则机器认为是有符号数,可以输出正数
1.5.有符号数和无符号数的取值范围:
2.字符型:
2.1.概念:
2.2.C语言演示:
char a = 'a';
//输出使用%c
printf("%c\n",a);
//输出a的ASCII值
printf("%d\n",a);
return 0;
字符型本质上是一个字节的整型,它的整型对应的是ASCII值
赋值使用字符和整型都是可以的,等价
a=97 A=65 大写和小写之间相差32
小写转大写-32 大写转小写+32
char a = 'a';
printf("%c\n",a);//输出a
printf("%c\n",97);//输出a
printf("%c\n",a-32); //输出A
printf("%c\n",97-32);//输出A
2.3.char的取值范围:
//char类型的取值范围是-128~127
char c = 128;//超出范围
printf("%d\n",c);//输出-128
//为什么是这样的结果?
3.浮点型:
3.1.概念:
3.2.C语言示例:
//定义一个float类型
float f = 3.14f;
printf("%f\n",f);// 3.140000
//定义一个double类型
double d = 5.33;
printf("%lf\n",d);//5.330000
float类型格式为%f,数字后面跟f
double类型格式为%lf,数字后面没有东西
4.字符串常量:
4.1.概念:
4.2.字符串输出函数printf:
4.2.1.一般输出:
int a = 10;
printf("%d\n",a);
4.2.2.输出字符串:
//字符串输出
printf("country =%s\n","china");//country =china
printf("china");//china
注:
/*有小数3.12345678 请输出3.12*/
//%m.n:m是输出多少位,n是输出几位小数
double d = 3.12345678;
printf("%4.2lf\n",d);//输出:3.12,[注]小数点也占一位
4.2.3.输入字符串scanf:
int a;
printf("请接收一个整数:");
scanf("%d",&a);
printf("%d\n",a);
4.2.4.字符的输入输出函数putchar(输出) getchat(输入):
char sex;
printf("请输入性别并答打印输出:");
sex = getchar();
putchar(sex);
putchar('\n');//换行
getchar()和putchar()只能输入输出一个字符,输入“f”可以打印 但输入“男”不可以打印
五、运算符与表达式:
(一)运算符:
1.常用运算符分类:
2.算数运算符:
3.自增自减运算符:
int a = 3;
int b = 0;
b = a ++;
printf("%d\n%d\n",a,b);//b = 3 a = 4:先赋值后自加
若a=3,b=0;a++,b= a,求a b的值:a先自加为4,后赋值给b,则a=b=4
4.比较运算符:
5.逻辑运算符:
6.运算符优先级:
7.强制类型转换运算符:
六、真题演练:
short的范围:-32768!~32767,unsigned short的范围:0~65535
运行到32768时超出范围,[循环进入]=65535-32767=32768=