c语言数据类型变量名表,C语言数据类型及变量整理

数据类型

获取int的字节数大小方法

printf("int bytes:%d",sizeof(int));

列表整理

类型

字节数

取值范围

char

1

[-128,127]=[-2^7,2^7-1]

unsigned char

1

[0,255]=[0,2^8-1]

short int(short)

2

[-2^15, 2^15-1]

unsigned short int

2

[0,2^16-1]

int

4

[-2^31,2^31-1]

unsigned int

4

[0,2^32-1]

long int

4

[-2^31,2^31-1]

unsigned long int

4

[0,2^32-1]

long long int

8

[-2^63, 2^63-1]

unsigned long long int

8

[0, 2^64-1]

float

4

-/+3.4e38(精确到6位小数)

double

8

-/+1.7e308(精确到15位小数)

long double

12

-/+1.19e4932(精确到18位小数)

Int 与 long int的区别

早期的C平台是16位int系统,int用二字节表示,范围是-32768~+32767;long是long int的简写,用4字节表示,范围是-2147483648~+2147483647。显然在早期平台下long能表示的整数范围要比int大得多。而时下的平台流行的是32位int系统,即4字节系统,int与long在这样的系统下已经没有区别了,它们都是4字节带符号整数,表数范围都是-2147483648~+2147483647。

数据溢出

当变量大于类型的最大值或者小于类型的最小值时,该变量的值会进行跳转,如最大值加一则是最小值。

#include

voidmain(){char min=-128-1;char max=127+1;

printf("min-1=%d \r\n",min); //输出: 127

printf("max+1=%d \r\n",max); //输出: -128

}

静态变量与函数

只用于本文件的变量或函数要全部使用static关键字声明

静态变量

0、静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响,不可用extern实现夸文件访问

1、静态变量会自动赋有初值0,而普通变量编译器不会自动赋初值

2、局部静态变量放置在数据区,所以不会因函数的消失而死亡,但寄生于函数之上。全局静态变量与全局变量类似。

3、静态变量重复定义时,局部静态变量优先级高,但只作用于局部

#include

static int i;//全局静态变量

voidfun1(){static int i;//局部静态变量

printf("%d\r\n",i);//0-9(局部)

i++;

}voidmain(){intx;for(x=0;x<10;x++) fun1();

printf("---%d\r\n",i);//0(全局)

}

静态函数

0、在函数的返回类型前加上static,就是静态函数

1、静态函数只能在声明它的文件中可见,其他文件不能引用该函数

2、不同的文件可以使用相同名字的静态函数,互不影响

结构体

声明

方法1:

struct结构体名

{

成员列表

};struct 结构体名 变量1,变量2;

方法2

struct结构体名

{

成员列表

}变量1,变量2;

方法3

struct{

成员列表

}变量1,变量2;

方法4

typedef struct{

成员列表;

}结构体别名;

结构体别名 变量1,变量2;

初始化

方法1

struct{

成员列表

}变量1={成员1值,成员2值,成员3值……};

方法2

memset(&结构体变量名,0,sizeof(结构体变量名)); //将所有全部变量清零

引用(使用)成员:

结构体变量

struct结构体名 变量1,变量2;

变量1.成员名

结构体指针变量

struct 结构体名 *变量1;

变量1->成员名

C文件间共享变量

extern

extern是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义,另外,extern也可用来进行链接指定。

可以经extern写在头文件中,变量的定义写在任意一个点C文件(如main.c)中,此后只要包含该头文件夹即可实现变量的共享使用

举个栗子:

C1.h,声明函数c1fun()

#ifndef _C1_H_

#define _C1_H_

void c1fun(char *strx);

#endif

C1.c,实现函数c1fun()

#include#include"c1.h"

char *wu;

void c1fun(char *strx){

wu=strx;

}

Main.c,调用函数c1fun(),并读取外部变量wu的值

#include #include "c1.h"

extern char *wu;

voidmain(){

c1fun("123456");

printf("===:%s",wu);//输出:123456

}

#define

针对不改变的量,可以在头文件中声明,在其他c文件中包含即可使用

如c1.h中:

#define DONG "dongxiaodong"

Mian.c中:

#include"c1.h"……

printf("===:%s",DONG);

…….

宏定义的使用

#define的使用

宏定义常量

#define DONG '2' //字符

#define DONG "is str" //字符串

#define DONG 12 //数字

#define DONG 13.36 //浮点数

宏定义范围

#define P 123 ……#undef P

typedef的使用

宏定义之类型重命名

typedef unsigned char u8;

宏定义之类型重命名对比

#include

#define ch1 char*typedefchar*ch2;voidmain(){

ch1 a,b;//char *a,b;

ch2 c,d;//char *c,*d;//输出: --8,1,8,8--

printf("--%d,%d,%d,%d--",sizeof(a),sizeof(b),sizeof(c),sizeof(d));

}

带参数的宏定义

#include

#define Max(x,y) ((x>y)?x:y)

#define Add(x,y) (x+y);

voidmain(){int i=Max(10,2);int ii=Add(2,1) //此处无分号printf("max:%d,add:%d",i,ii);//max:10,add:3

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值