日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言不同类型变量用什么表示什么作用,C语言数据类型及变量整理

發(fā)布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言不同类型变量用什么表示什么作用,C语言数据类型及变量整理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)據(jù)類型

獲取int的字節(jié)數(shù)大小方法

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

列表整理

Int 與 long int的區(qū)別

早期的C平臺是16位int系統(tǒng),int用二字節(jié)表示,范圍是-32768~+32767;long是long int的簡寫,用4字節(jié)表示,范圍是-2147483648~+2147483647。顯然在早期平臺下long能表示的整數(shù)范圍要比int大得多。而時下的平臺流行的是32位int系統(tǒng),即4字節(jié)系統(tǒng),int與long在這樣的系統(tǒng)下已經(jīng)沒有區(qū)別了,它們都是4字節(jié)帶符號整數(shù),表數(shù)范圍都是-2147483648~+2147483647。

數(shù)據(jù)溢出

當變量大于類型的最大值或者小于類型的最小值時,該變量的值會進行跳轉(zhuǎn),如最大值加一則是最小值。

#include

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

printf("min-1=%d",min); //輸出: 127

printf("max+1=%d",max); //輸出: -128

}

進制

int i=99; /*十進制*/

int i=07; /*八進制*/

int i=0x04; /*十六進制*/unsignedint i=60u; /*無符號整數(shù)*/

long int i=60l; /*長整數(shù)*/unsignedlong int i=60ul; /*無符號長整數(shù)*/

靜態(tài)變量與函數(shù)

只用于本文件(當前點C文件)的變量或函數(shù)要全部使用static關(guān)鍵字聲明

靜態(tài)變量

0、靜態(tài)全局變量僅對當前文件可見,其他文件不可訪問,其他文件可以定義與其同名的變量,兩者互不影響,不可用extern實現(xiàn)夸文件訪問

1、靜態(tài)變量會自動賦有初值0,而普通變量編譯器不會自動賦初值

2、局部靜態(tài)變量放置在數(shù)據(jù)區(qū),所以不會因函數(shù)的消失而死亡,但寄生于函數(shù)之上。全局靜態(tài)變量與全局變量類似。

3、靜態(tài)變量重復(fù)定義時,局部靜態(tài)變量優(yōu)先級高,但只作用于局部

#include

static int i;//全局靜態(tài)變量

voidfun1(){static int i;//局部靜態(tài)變量

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

i++;

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

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

}

靜態(tài)函數(shù)

0、在函數(shù)的返回類型前加上static,就是靜態(tài)函數(shù)

1、靜態(tài)函數(shù)只能在聲明它的文件中可見,其他文件不能引用該函數(shù)

2、不同的文件可以使用相同名字的靜態(tài)函數(shù),互不影響

枚舉

enumEx{

D0,D1,D2,D3//0,1,2,3

};enumEx{

D0=100,D1,D2,D3 //100,101,102,103

}ee;enumEx{

D0,D1=200,D2,D3 //0,200,201,202

}ee;

printf("%d

",D2);

結(jié)構(gòu)體

聲明

方法1:

struct結(jié)構(gòu)體名

{

成員列表

};struct 結(jié)構(gòu)體名 變量1,變量2;

方法2

struct結(jié)構(gòu)體名

{

成員列表

}變量1,變量2;

方法3

struct{

成員列表

}變量1,變量2;

方法4

typedef struct{

成員列表;

}結(jié)構(gòu)體別名;

結(jié)構(gòu)體別名 變量1,變量2;

初始化

方法1

struct{

成員列表

}變量1={成員1值,成員2值,成員3值……};

方法2

memset(&結(jié)構(gòu)體變量名,0,sizeof(結(jié)構(gòu)體變量名)); //將所有全部變量清零

引用(使用)成員:

結(jié)構(gòu)體變量

struct結(jié)構(gòu)體名 變量1,變量2;

變量1.成員名

結(jié)構(gòu)體指針變量

struct 結(jié)構(gòu)體名 *變量1;

變量1->成員名

C文件間共享變量

extern

extern是計算機語言中的一個關(guān)鍵字,可置于變量或者函數(shù)前,以表示變量或者函數(shù)的定義在別的文件中。提示編譯器遇到此變量或函數(shù)時,在其它模塊中尋找其定義,另外,extern也可用來進行鏈接指定。

可以經(jīng)extern寫在頭文件中,變量的定義寫在任意一個點C文件(如main.c)中,此后只要包含該頭文件夾即可實現(xiàn)變量的共享使用

舉個栗子:

C1.h,聲明函數(shù)c1fun()

#ifndef _C1_H_

#define _C1_H_

void c1fun(char *strx);

#endif

C1.c,實現(xiàn)函數(shù)c1fun()

#include#include"c1.h"

char *wu;

void c1fun(char *strx){

wu=strx;

}

Main.c,調(diào)用函數(shù)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 //數(shù)字

#define DONG 13.36 //浮點數(shù)

宏定義范圍

#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));

}

帶參數(shù)的宏定義

#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

}

參考:

https://blog.csdn.net/kuniqiw/article/details/84495732

總結(jié)

以上是生活随笔為你收集整理的c语言不同类型变量用什么表示什么作用,C语言数据类型及变量整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。