您的位置:首页 > 编程语言 > C语言/C++

2 C语言 常量,进制,类型限定 输入输出 运算符 类型转换

2016-05-02 10:51 573 查看
常量:#define const 字符串常量
1 8 10 16 进制转换
sizeof关键字
变量 int folat char
类型限定 const volatile register
输入输出 printf scanf
运算符 = + - * / % += -= *= /= %= ++ -- , 运算符优先级
代码块{}
类型转换

1 C语言中的数据类型

1.1 常量

常量就是在程序中不可变化的量,常量是不可被赋值的。

1.1.1 #define

#define的本质就是简单的文本替换通过#define定义的常量,在C语言里面一般叫宏定义

1.1.2 const

const定义一个变量,但是这个变量的值只能在定义的时候赋予,之后就不可以修改。对于const类型的变量,一定要在定义的时候给变量赋初值,不然定义之后就无法赋值了。

1.2 字符串常量

在C语言当中“”引用的字符串都是字符串常量,常量一旦定义也是不可以被修改的。

1.3 位,字节,字

1.3.1 位

计算机内部都是二进制的,一个二进制的位,就叫做一个bit,就是一位

1.3.2 二进制

逢二加1,在二进制表达数的时候是只有0和1,而没有2这个数的二进制最大表示的数,就是2几次幂对于8位的CPU来讲,最大表达的数是2的8次幂

1.3.3 十进制

逢10加1,只有从0 到9的数,没有10这个数,


1.3.4 八进制

从0到7,逢8加1在C语言中八进制是数字前面加0

1.3.5 十六进制

0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10逢16加1,在C语言当中表达一个十六进制数的方式,数字前面加0x前缀

1.3.6 字节

8个bit为代表一个字节

1.4 sizeof关键字

sizeof与size_t类型sizeof是计算数据在内存当中占多大空间的,单位字节由于sizeof永远返回的是一个大于等于0的整数,所以如果用int来表示sizeof的返回值就不合适,size_t一般就是一个无符号的整数.

1.5 十进制,二进制,八进制,十六进制



1.6 int类型

1.6.1 int常量,变量

一个int型数据占据4个字节的内存大小,在16位操作系统下,int是2个字节,在32和64位操作系统下,int是4个字节。int a;//代表在内存当中开辟一个4个字节大小的空间a = 10;//代表4个字节的空间内容是常量10小端对齐和大端对齐高地址放高位,底地址放低位---小端对齐高地址放低位,底地址放高位—大端对齐对于大型unixCPU都是按照大端对齐方式处理int,但对于x86构架CPU,还有ARM,是小端对齐的






1.6.2 printf输出int值

int a = 0x100;//十六进制printf(“%d”,a);%d的意思是按照10进制打印一个整数%x%X,输出十六进制的时候是用大写的ABCDEF还是小写的abcdef,

1.6.3 printf输出八进制和十六进制

%o

1.6.4 short,long,long long,unsigned int

在32位系统下:short = 2个字节long和int一样,是4字节long long 是8个字节在64位操作系统下int,4个字节long 在大多数64位系统下8个字节unsigned int//无符号整数unsigned long//无符号的长整数unsigned short//无符号短整数 9l,9L,9ll,9LL,9u,9ull,9ULL

1.6.5 整数溢出

当把一个大的整数赋值给小的整数,叫溢出。int I = 0x12345678short a = I;当一个int赋值给short,会将高位抛弃,

1.7 char类型

1.7.1 char常量,变量

char是字符型,代表一个字节的内存char在内存当中,有符号最大7f,无符号,最大ffunsigned charchar的本质就是一个字节,一个BYTE

1.7.2 printf输出char

%c

1.7.3 不可打印char转义符

\a,警报\b退格\n换行\r回车\t制表符\\斜杠\’单引号\”双引号\?问号

1.7.4 char和unsigned char

char取值范围为-128到127unsigned char为0-255

1.8 浮点float,double,longdouble类型

1.8.1 浮点常量,变量

float f = 2.5;double f1 = 3.1415926

1.8.2 printf输出浮点数

%f,%Lf

1.9 类型限定

1.9.1 const

const限定一个变量的值不可以改变

1.9.2 volatile

告诉编译器不要自作聪明的给我优化代码,把我的变量优化的寄存器里面计算,只要是volatile类型变量,每一步都需要从内存当中读取。


1.9.3 register

register告诉编译器,这个变量只是用寄存器就好,提高效率,所以说register只是一个建议,而不是必须的结果。

2 字符串格式化输出和输入

2.1 字符串在计算机内部的存储方式

字符串是内存中一段连续的char空间,以’\0’结尾字符串就是0结尾的连续char的内存

2.2 printf函数,putchar函数

printf格式字符
字符对应数据类型含义
d int接受整数值并将它表示为有符号的十进制整数
hdShort int短整数
huUnsigned short int无符号短整数
ounsigned int无符号8进制整数
uunsigned int无符号10进制整数
x / Xunsigned int无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF
ffloat或double单精度浮点数双精度浮点数
e / Edouble科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
cchar字符型。可以把输入的数字按照ASCII相应转换为对应的字符
s / Schar * / wchar_t *字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
pvoid *以16进制形式输出指针
%%输出一个百分号
printf附加格式
字符含义
l附加在d,u,x,o前面,表示长整数
-左对齐
m(代表一个整数)数据最小宽度
0将输出的前面补上0

直到占满指定列宽为止

不可以搭配使用

-



N(代表一个整数)宽度至少为n位

不够以空格填充

printf是打印一个字符串putchar是打印一个字符

2.3 scanf函数与getchar函数

3 运算符表达式和语句

3.1 基本运算符

3.1.1 =

数据对象:泛指数据在内存的存储区域左值:表示可以被更改的数据对象右值:能赋给左值的量

3.1.2 +

3.1.3 –

3.1.4 *

3.1.5 /

3.1.6 %

取模,取余数

3.1.7 +=

int a = 10;a = a + 5;可以简写成a +=5;

3.1.8 -=

a = a – 5;a -= 5;

3.1.9 *=

a = a * 5;a *= 5;

3.1.10 /=

3.1.11 %=

3.1.12 ++

3.1.13 --

3.1.14 逗号运算符

int I = 6 + 5, 3 + 2逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值。

3.1.15 运算符优先级

优先级运算符结合性
1++(后缀),--(后缀),()(调用函数),{}(语句块),.,->从左到右
2++(前缀),--(前缀),+(前缀),-(前缀),!(前缀),~(前缀),sizeof,*(取指针值),&(取地址),(type)(类型转化)从右到左
3*, /, %从左到右
4+,-从左到右
5<< >>从左到右
6< > <= >=从左到右
7== !=从左到右
8&从左到右
9^从左到右
10|从左到右
11&&从左到右
12||从左到右
13?从右到左
14=,*=,%=,+=,-=,<<=,>>=,&=,|=,^=从右到左
15,(逗号运算符)从左到右

3.2 复合语句

{}代码块

3.3 类型转化

double d = 10.2; int a =d;//隐式转换 int a1 = 3; int a2 = 2; double mid = (double)a1 / (double)a2;//显示的强转 printf("mid = %f\n", mid);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  常量 字符 串常量