(C)数据类型及范围,运算符,输入输出,变量初始化和存储类型

1.1  数据的表现形式

在C中,数据有两种表现形式:常量和变量

一.常量

1.整型常量:1213

2.实型常量

1)十进制小数 :1.23

2)指数形式:1.23E3(1.23*10^3)

3.字符常量

1)普通字符:‘d’,‘5’

2)转义字符: 

\n-------换行

\t -------空出一个tab键的位置

\abc ----------abc为八进制,如\101十进制为65,是A的ASCII码值,则直接输出A

\xabc-------- abc为16进制,如\x42十进制为64,是B的ASCII码值,则直接输出B

4.字符串常量:----"china"

5.符号常量:-------#define PI 3.14

二.变量:必须先定义后使用

三:常变量:在定义变量前加const,如const int a,意思是只读,变量存在期间不能改变。(C99才能正常使用)

四:标识符:C语言规定标识符只能由字母,数字,下划线三种字符组成,第一个字符必须为字母或者是下划线。

1.2  数据类型

基本类型:int(整型),short  (短整型),long(长整型),float(单精度浮点型),double(双精度浮点型),char(字符型)

枚举类型(enum)

空类型(void)

定义类型(typedef)

构造类型:*(指针类型),[](数组类型),struct(结构体类型),union(共用体类型)

int(整形)---- 4字节(32位)----范围:-2^31~~2^31-1

若存的是正数,则直接将二进制存入,

若为负数,先写出绝对值的源码,然后取反+1得到补码,然后存入。

最大能存储:2^31-1,其中第一位为符号位,0代表正数,1代表负数

2^31二进制(源码):0111 1111 1111 1111 1111  1111 11111 1111   

 取反:1000 0000 0000 0000 0000 0000 0000 0000

加1得:1000 0000 0000  0000 0000 0000 0000 0000

则补码为:-2^31

所以int以4字节存入时范围为(-2^31~~2^31-1),以2字节存入时范围为(-2^15~~2^15-1)

unsigned int(无符号整形)----4字节(32位)----范围:0~~2^32-1

没有1或者0表示正负,所以最大为32位全是1,即最大为2^32-1

short(短整型)----2字节(8位)----范围:-2^15~~2^15-1

unsigned short(无符号短整型)----2字节(8位)----范围:0~~2^16-1

long(长整形)---- 4字节(32位)----范围:-2^31~~2^31-1

long long(双长整形)---- 8字节(64位)----范围:-2^63~~2^63-1

char(字符型)----1字节(8位)-----范围:-2^7~~2^7-1----常见'0'ASCII值为48,‘a’为97,‘A’为65

float(单精度浮点型)----4字节(32位)---保留6位

double(双精度浮点型)----8字节(64位)----保留15位

enum(枚举类型):只能从范围内数据进行选择,类似周一到周日

void(空类型):

1.任何类型的指针都可以显式转换为void类型,且不会丢失数据

2.限定函数的类型

3.限定函数的返回值

typedef(定义类型):可以将一个复杂的函数类型重新命名,如typedef  unsigned  char  uchar,将unsigned  char重新命名为uchar,然后就可以用uchar代替unsigned  char。

*(指针类型):*p:代表p是指针类型,p中存放的所指向的地址,

int *p:定义了一个指针变量

struct(结构体类型)各个成员有各自的内存空间,一个结构变量的总长度是各成员长度的总和。

union(同构体类型):各个成员共享一段空间,一个联合变量的长度等于各个成员中最长的长度。

1.3运算符

优先级依次降低:

初级运算符:(),[],->

单目运算符(只有一个变量运算):++,--,-(负号),!(非),sizeof(求长度)

双目运算符:*,/,%,+,-,

关系运算符:>,<,>=,<=,==,!=

逻辑运算符:||,&&

1.4数据的输入输出(printf和scanf)

printf("格式控制",参数表列);

 修饰符是在格式符后面,如int a=10;printf(“%5d”,a);输出整型a,且空5格

如float b=3.14356;  printf(“%.2f”,b);输出浮点型b,保留两位小数

scanf(“格式控制”,地址表列);

 1.5声明与定义

int i; 定义:创建一个变量,为其分配内存空间,并为它取名字,一个变量只能定义一次;

extern int i;声明:告知编译器,这个名字(变量名)已经匹配在一块内存上了,但是并未为其分配内存;

1.6变量初始化和变量存储类型

默认初始化规则:       全局变量(垃圾值)、静态变量(0)       局部变量  (垃圾值)

人工初始化:       数值变量       字符变量       指针变量       数组

C的存储类别有四种:auto、static、register和extern。

auto    是所有局部变量默认的存储类。

register 变量存储在cpu的寄存器内。

static   当定义为全局静态变量时,只有本文件的代码才可以访问,其他文件不可访问。当定义为局部静态变量时,每次调用函数不会都重新赋值。

extern 声明变量,表明变量或函数的定义在别的文件中,下面用到的这些变量或是函数是外来的

 当调用f函数时,b只有第一次被赋值0,。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值