04-C语言数据类型

目录:

一、 注释

二、数据类型

三、 输入函数scanf

四、转义符\

五、char数据范围

六、int整形

七、float与double

八、进制转换

回到顶部

一、 注释

1 解释代码的意义,注意只是给程序员看的,不会编译。

2 通常使用”//”标识一行内容的注释

3 使用”/*…*/”注释多行

4 还可以用来调错,替换法或排除法

回到顶部

二、数据类型

1 分类:基本数据类型、引用数据类型

2 在C语言中,基本数据类型有四种:char、int、float、double

3 字符型char,底层存储的是整数,是字符表ASCII里面的编码。

     常见字符编码:'A' = 65 、'a' = 97 、'0' = 48

4 char代表一个字符,用两个 '' 括起来,占位8位(二进制)内存,8位的     二进制数占用1个字节空间。中文占用2个字节

位bit:描述二进制的位数

字节byte:描述占用存储空间的大小

1KB千字节 = 1024B字节

1MB兆字节 = 1024KB

1GB吉字节 = 1024MB

1TB = 1024GB

1PB = 1024TB

输出函数printf输出char类型变量内容,所使用占位符为%f输出数据。

练习:

     1 定义一个字符变量ch='A',使变量ch+4,输出结果%d,%c

     2 定义一个字符变量ch='a',使变量ch+4,输出结果%d,%c

     3 字符类型'5','6',有没有办法转换成相应的数值类型?

     4 字符类型'f',有没有办法转换成'F'?

 代码:

 1 #include <stdio.h>

 2 

 3 //定义一个字符变量ch='A',使变量ch+4,输出结果%d,%c

 4 void test1()

 5 {

 6     char ch = 'A';

 7     char res;

 8     res = ch + 4;

 9     printf("char:%c\n",res);

10     printf("char:%d\n",res);

11 }

12 

13 //定义一个字符变量ch='a',使变量ch+4,输出结果%d,%c

14 void test2()

15 {

16     char ch = 'a';

17     char res;

18     res = ch + 4;

19     printf("char:%c\n",res);

20     printf("char:%d\n",res);

21 }

22 

23 //字符类型'5','6',有没有办法转换成相应的数值类型?

24 void test3()

25 {

26     char a = '5';

27     char b = '0';

28     int num = a - b;

29     printf("'5'->'%c'\n",a);

30     printf("'5'->%d\n",num);

31 }

32 

33 //字符类型'f',有没有办法转换成'F'?

34 void test4()

35 {

36     printf("请输入一个字符:");

37     char ch;

38     //输入函数 对应数据类型占位符

39     scanf("%c",&ch);

40     char res = ch - ('a' - 'A');

41     printf("%c->'%c'\n",ch,res);

42 }

43 

44 //将26个小写字母转换为对应的大写字母。

45 

46 //转义符'\'

47 void test5()

48 {

49     char ch = '\"';

50     printf("ch:%c\n",ch);

51     printf(" a\n");

52     printf("    a\n");

53 }

54 

55 //数据溢出

56 void test6()

57 {

58     //无符号取值范围0~255

59     //有符号(默认)范围-127~128

60     char ch = 127;

61     //如果是最大值溢出从最小值开始算

62     char ch2 = 127 + 1;

63     //如果是最小值溢出从最大值开始算

64     char ch3 = ch2 - 1;

65     printf("ch2:%d\n",ch2);

66     printf("ch3:%d\n",ch3);

67 }

68 int main()

69 {

70     //test1();

71     //test2();

72     //test3();

73     //test4();

74     //test5();

75     test6();

76     return 0;

77 }

回到顶部

 三、 输入函数scanf键盘->程序

1 通过键盘向程序传输数据,等待用户输入,直到用户输入完毕回车。

Ctrl+c 强制停止程序运行

2 语法scanf("%c",&ch);

参数1 对应数据类型占位符

参数2 取变量地址,将键盘输入的数据存在相应地址中

练习:将26个小写字母转换为对应的大写字母。

回到顶部

四、转义符\

在做字符类型数据处理时,一些特殊的符号,需要转义处理,(特殊符号:与系统定义的语法符合冲突),转义处理,就会用到\,这就是转义符 。

常用的转义符处理:

\n 换行字符

\r 回车字符

\t 制表符tab,一个制表符等于8个空格字符

\\ 反斜杠

\' 单引号字符

\" 双引号字符

回到顶部

五、char数据范围

unsiged(无符号)char 8位 1字节 0~255

有符号char 8位 1字节 -128~127,默认是有符号的

溢出:超出最大值,从最小开始算

超出最小值,从最大开始算

回到顶部

 六、int整形

1 int代表16位或32位二进制数,short/long修饰

short(int)16位,

long(int)32位

signed int第一位就是符号位,long long long int代表64位整数。推荐int类型描述整数。

2 在c语言中,整数有二进制、八进制、十进制、十六进制。

3 二进制数,以值0标识开始,到1结束,当为2时会向前进一位。

十进制数,以值0标识开始,到9结束,当为10时会向前进一位。

八进制数,以值0标识开始,到7结束,当为8时会向前进一位。

十六进制数,以值0标识开始,到15结束,当为16时会向前进一位。

10 A  11 B  12 C  13 D  14 E  15 F

4 取值范围

short 16位 2字节 有符号 -32768~32767

unsigned short 16位 2字节 无符号 0~65535

long 32位 4字节 有符号 -2^31~2^31-1

unsigned long 32位 4字节 无符号 0~2^31-1

练习:

     1从键盘输入两个数,求出和、差、积、商。

     2 从键盘上输入工资,输入税点,求税值。

代码:

 1 #include <stdio.h>

 2 

 3 //从键盘输入两个数,求出和、差、积、商。

 4 void test1(fuhao)

 5 {

 6     int num1;

 7     int num2;

 8     int he = 0,cha = 0,ji = 0,shang = 0;

 9     printf("请输入两个整数(以空格隔开):\n");

10     scanf("%d %d",&num1,&num2);

11     he = num1 + num2;

12     cha = num1 - num2;

13     ji = num1 * num2;

14     shang = num1 / num2;

15     printf("%d+%d=%d\n",num1,num2,he);

16     printf("%d-%d=%d\n",num1,num2,cha);

17     printf("%d*%d=%d\n",num1,num2,ji);

18     printf("%d/%d=%d\n",num1,num2,shang);

19 }

20 

21 //从键盘上输入工资,输入税点,求税值。

22 void test2()

23 {

24     float salary;

25     float tax;

26     printf("请输入工资和税点(以空格隔开):\n");

27     scanf("%f %f",&salary,&tax);

28     float shuizhi = salary * tax;

29     printf("所交税值:%.2f\n",shuizhi);

30 }

31 int main()

32 {

33     test1();

34     //test2();

35     return 0;

36 }

回到顶部

 七、float与double

1 有整形和小数两个部分组成

2 c中,浮点型包括float、double、long double。

float 32位 4字节 2^32

double 64位 8字节 2^64

long double 96位 12 字节 2^96

3 输出结果中,使用占位符

%f  float

%lf  double

%g(科学计数法)

练习:

1 从键盘上输入圆的半径,pi的值3.14,求圆的周长和面积。

2 从键盘上输入矩形的长和宽,求矩形的周长和面积。

 1 #include <stdio.h>

 2 

 3 //从键盘上输入圆的半径,pi的值3.14,求圆的周长和面积。

 4 void test1()

 5 {

 6     float r;

 7     float pi = 3.14;

 8     printf("请输入圆的半径:\n");

 9     scanf("%f",&r);

10     float mianji = pi * r * r;

11     float zhouchang = 2 * pi * r;

12     printf("圆的面积是:%f,周长是:%f\n",mianji,zhouchang);

13 }

14 

15 //从键盘上输入矩形的长和宽,求矩形的周长和面积。

16 void test2()

17 {

18     float chang;

19     float kuan;

20     printf("请输入矩形的长:\n");

21     scanf("%f",&chang);

22     printf("请输入矩形的宽:\n");

23     scanf("%f",&kuan);

24     float mianji = chang * kuan;

25     float zhouchang = 2 * (chang + kuan);

26     printf("矩形长是:%f,宽是:%f,的面积是:%.2f,周长是:%.2f\n",chang,kuan,mianji,zhouchang);

27 }

28 int main()

29 {

30     //test1();

31     test2();

32     return 0;

33 }

回到顶部

 八、进制转换

自动转换:%d十进制、%o八进制、%x十六进制 

 1 #include <stdio.h>

 2 

 3 int main()

 4 {

 5     int i = 11;//十进制 1*10+1*1=11

 6     int i2 = 011;//0代表是八进制 1*8+1*1=9

 7     int i3 = 0x11;//0x代表是十六进制 1*16+1*1=17

 8     //转换自动转换 %o八进制 %x十六进制

 9     printf("i其本身十进制:%d,转换八进制为:%o,转换十六制为:%x\n",i,i,i);

10     printf("i2转换十进制为:%d,转换十六制为:%x,其本身八进制:%o\n",i2,i2,i2);

11     printf("i3转换十进制为:%d,转换八进制为:%o,其本身十六进制:%x\n",i3,i3,i3);

12     return 0;

13 }

 

你可能感兴趣的:(数据类型)