首页 > 其他分享 >【C语言基础语法】2. 变量和数据类型

【C语言基础语法】2. 变量和数据类型

时间:2023-08-11 13:00:45浏览次数:36  
标签:字符 ch int 数据类型 C语言 语法 整型 printf sizeof

目录

一、变量和常量

  1.1 关键字

  1.2 数据类型

  1.3 变量名命名

二、进制

三、整型

  3.1 整型的输出

  3.2 整型的输入

  3.3 整型的分类

四、字符

  4.1 字符的输出

  4.2 字符的输入

  4.3 ascill码表

  4.4 转义字符

五、浮点型

六、类型限定符

七、格式化

  7.1 格式化输出

  7.2 格式化输入

一、变量和常量

  1.1 关键字

  • 数据类型关键字(12个)

char,short,int,long,float,double,unsigned,signed,struct,union,enum,void

  • 控制语句关键字(12个)

if,else,switch,case,default,for,do,while,break,continue,goto,return

  • 储存类关键字(5个)

auto,extern,register,static,const

  • 其他关键字(3个)

sizeof,typedef,volatile

  1.2 数据类型

整数作用:编译器预算对象(变量)分配的内存空间大小。

【C语言基础语法】2. 变量和数据类型_变量和数据类型

  1.3 变量名命名

  1. 不能和关键字同名。
  2. 以字母、数字、下划线组成。
  3. 不能以数字开头。
  4. 区分大小写。

二、进制

十进制

二进制

八进制

十六进制

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

三、整型

  3.1 整型的输出

#include<stdio.h>
int main()
{
	int a=123;
	printf("%d\n", a);//十进制
	printf("%o\n", a);//八进制
	printf("%x\n", a);//十六进制
	printf("%X\n", a);//十六进制
	printf("%u\n", a);//无符号
	return 0;
}

  3.2 整型的输入

#include<stdio.h>
int main()
{
	int a;
	printf("请输入变量a的值:\n");
	scanf_s("%d", &a);
	printf("输入的a=%d\n", a);
	return 0;
}

  3.3 整型的分类

数据类型

占用空间

short(短整型)

2字节

int(整型)

4字节

long(长整型)

windows 为4字节,linux为4字节(32位),8字节(64位)

long long(长长整型)

8字节

#include<stdio.h>
int main()
{
	short a = 0xffff;
	int b = 0xffffffff;
	long c = 0xffffffffl;
	long long d = 0xffffffffffffffffll;
	printf("a=%hx\n",a);
	printf("a=%x\n", a);
	printf("a=%lx\n", a);
	printf("a=%llx\n", a);
	return 0;
}

四、字符

  4.1 字符的输出

#include<stdio.h>
int main()
{
	char ch = 'a';
	printf("sizef(ch)=%u\n",sizeof(ch));//占用一字节
	printf("ch[%%c]=%c\n", ch);//打印字符
	printf("ch[%%d]=%d\n", ch); //打印'a'ASCLL的值
	return 0;
}

  4.2 字符的输入

#include<stdio.h>
int main()
{
	char ch;
	printf("请输入字符:\n");
	scanf_s("%c", &ch);
	printf("输入字符:%c\n", ch); 
	return 0;
}

  4.3 ascill码表

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

ASCII值

控制字符

0

NUL

32

(space)

64

@

96

1

SOH

33

65

A

97

a

2

STX

34

66

B

98

b

3

ETX

35

#

67

C

99

c

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

ACK

38

&

70

F

102

f

7

BEL

39

'

71

G

103

g

8

BS

40

(

72

H

104

h

9

HT

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

+

75

K

107

k

12

FF

44

,

76

L

108

l

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DCI

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

r

19

DC3

51

3

83

S

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

TB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

x

25

EM

57

9

89

Y

121

y

26

SUB

58

:

90

Z

122

z

27

ESC

59

;

91

[

123

{

28

FS

60

<

92

\

124

|

29

GS

61

=

93

]

125

}

30

RS

62

>

94

^

126

~

31

US

63

?

95

127

DEL

  4.4 转义字符

转义字符

含义

ASCLL码值(十进制)

\a

报警

007

\b

退格(BS),将当前位置移到前一列

008

\f

换页(LF),将当前位置移到下页开头

012

\n

换行(LF),将当前位置移到下一行开头

010

\r

回车(CR),将当前位置移到本行开头

013

\t

水平制表(HT)(跳到下一个TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一个反斜线字符"\"

092

\'

代表一个单引号(撇号)字符

039

\"

代表一个双引号字符

034

\?

代表一个问号

063

\0

数字0

000

\ddd

8进制转义字符,d范围0~7

3位8进制

\xhh

16进制转义字符,h范围0~9,a~f,A~F

3位16进制

五、浮点型

实型(浮点型):float、double

#include<stdio.h>
int main()
{
	float a=3.14f;
	double b = 3.14;
	printf("sizeof(a)=%u\n",sizeof(a));
	printf("sizeof(b)=%u\n", sizeof(b));
	printf("sizeof(3.14f)=%u\n", sizeof(3.14f));
	printf("sizeof(3.14)=%u\n", sizeof(3.14));
	return 0;
}

六、类型限定符

限定符

含义

extern

声明一个变量,extern声明的变量没有建立存储空间。

extern int a;//变量在定义的时候创建存储空间。

const

定义一个常量,常量的值不能修改。

const int a=10;

Volatile

防止编译器优化代码


register

定义寄存器变量,提高效率。register是建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就生效,如果没有空闲寄存器,那么register无效。

七、格式化

  7.1 格式化输出

打印格式

对应数据类型

含义

%d

int

接受整形数值并将它表示为有符号的十进制数

%hd

short int

短整数

%hu

unsigned short

无符号短整数

%o

unsigned int

无符号8进制整数

%u

unsigned int

无符号10进制整数

%x,%X

unsigned int

无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF

%f

float

单精度浮点数

%lf

double

双精度浮点数

%e,%E

double

科学字数法表示的数,此处“e”的大小写代表在输出时用“e”

%c

char

字符型。可以把输入的数字按照ASCLL码相应转换为对应的字符

%s

char*

字符串。输出字符串中的字符直至字符串中的空字符

%p

void*

以16进制形式输出指针

%%

%

输出一个百分号

printf附加格式:

字符

含义

l(字母l)

附加在d,u,x,o 前面,表示长度整数

-

左对齐

m

数据最小宽度

0

将输出的前面补上0直到占满指定列宽为止不可以搭配使用-

m,n

m指域宽,n指精度

字符和字符串

  • 'a':字符
  • "a":字符串(两个字符a\0)

输出

  • printf 格式化输出
  • putchar(字符)输出一个字符

  7.2 格式化输入

  • scanf 指定格式输入
#include<stdio.h>
int main()
{
	char ch;
	scanf_s("%c", &ch);
	int a;
	scanf_s("%d", &a);
	int b, c;
	scanf_s("%d,%d", &b, &c);
	return 0;
}
  • getchar 接受一个字符
#include<stdio.h>
int main()
{
	char ch;
	ch = getchar();
	getchar();
	return 0;
}


标签:字符,ch,int,数据类型,C语言,语法,整型,printf,sizeof
From: https://blog.51cto.com/u_16182859/7046382

相关文章

  • 数据类型介绍
    数据类型:区分不同的数据。不同的数据类型应该有不同的操作数字:做加减乘除+-*/整数,int小数,floata=10#整数b=20print(a+b)#加法运算c=1.25print(c*4)#乘法运算文字:用做展示字符串:str  重点表示方式:    ''    #单行  ......
  • C语言个人笔记(持续更新中)
    第一&二章概况1在UNIX、LINUX和Windows下的运行过程c语言执行过程:源代码.c--->(编译器/汇编器)--->目标代码.obj--->(链接器)--->可执行代码.exe编译器:将c文件编译为汇编语言汇编器:将c文件编译为机器语言链接器:有三种链接方式:在UNIX系统上编译不具备专门的C语言编译器,通常......
  • typeScript学习-TS类型-字面量数据类型
    typeScript学习字面量数据类型://typeA=number|string//leta:A="abc"//typenum=number//letn:num=3typenum=1|2|3letn:num=2//错误情况//letn:num=4typeincreaseFlag=0|1functionisStartUp(increase:increaseFlag){if(in......
  • java_数据类型
    graphLR;java数据类型-->基本数据类型java数据类型-->引用数据类型1.基本类型graphLR;基本类型-->数值型基本类型-->字符型("字符型(char[2字节])")基本类型-->布尔型("布尔型(boolean[1字节]存放true/false)")数值型-->整数("整数(byte[1......
  • Java 数据类型和变量的完整指南
    目录一、字面常量1.1什么常量?1.2常见的六种常量类型二、数据类型2.1什么是数据类型?2.2基本数据类型:2.3引用数据类型三、变量3.1什么是变量?3.2变量的命名规则3.3变量的作用域3.4变量的被final修饰四.类型转换4.1什么是类型转换?4.2自动类型转换4.3强制类型转换4.4注意事项4.5类型提升......
  • C语言的指针
    所谓的指针,其实就是一个类型。如何解释这个呢?首先来看inti=3;int是变量的类型i是变量的名字3是变量的值首先变量是存储在内存中,访问内存是需要地址,其次读取时需要知道内存存储的格式后才知道读取多少位内存。也是分三步走确认内存地址知道内存格式读取内存此......
  • C语言驱动开发之内核解锁与强删文件
    在某些时候我们的系统中会出现一些无法被正常删除的文件,如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉,而所谓的解锁其实就是释放掉文件描述符(句柄表)占用,文件解锁的核心原理是通过调用ObSetHandleAttributes函数将特定句柄设置为可关闭状态,然后在调用ZwClose将其文件关闭......
  • 萌新学习c语言过程
    今天把三子棋的代码写的差不多了,有些地方不尽人意感觉有时候还是有点迷。......
  • C语言驱动开发之内核解锁与强删文件
    在某些时候我们的系统中会出现一些无法被正常删除的文件,如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉,而所谓的解锁其实就是释放掉文件描述符(句柄表)占用,文件解锁的核心原理是通过调用ObSetHandleAttributes函数将特定句柄设置为可关闭状态,然后在调用ZwClose将其文件关闭......
  • 【总结一下|LaTex语法】一些常用的LaTex语法小知识
    文章目录快速检索矩阵语法示例上标下标求和分数希腊字母语法示例大括号算式标签字母头上横线字母头上加^号字母头上加波浪线字母头上加点输入中括号大于等于小于等于...字母上添加波浪线向量积分符号举例波浪线整数、实数、自然数子集、真子集、空集箭头空格、缩进加粗绝对值上括......