1. 程式人生 > >C語言程式設計--型別轉換

C語言程式設計--型別轉換

變數定義



int var_int = 111111111;
char var_char = '2';
double var_double = 3.30;
float var_float = 4.80;
short int var_short = 5;
long int var_long = 6111111111111111;

數字間的型別轉換



總結:佔位元組數多的型別轉換成佔位元組數少的型別時,會根據在佔位元組少的型別的記憶體區的01排列來決定值。

int 和 short的轉換


(int)var_short//short->int
(short)var_int//int->short 如果int過大,short會根據自己所佔位置的01情況成為相應的數值

int 和 long的轉換


(int)var_long//long->int 如果long過大,int會根據自己所佔位置的01情況成為相應的數值
(long)var_int//int->long

short 和 long的轉換


(long)var_short//short->int
(short)var_long//long->short 如果long過大,short會根據自己所佔位置的01情況成為相應的數值

int 和 float的轉換


(int)var_float//float->int向下取整
(float)var_int//int->float

int 和 double的轉換


(int)var_double//double->int向下取整
(double)var_int//int->double

double 和 short的轉換


(short)var_double//double->short向下取整
(double)var_short//short->double

float 和 short的轉換


(short)var_float//float->short向下取整
(float)var_short//short->float

double 和 long的轉換


(long)var_double//double->long向下取整
(double)var_long//long->double

float 和 long的轉換


(long)var_float//float->long向下取整
(float)var_long//long->float

數字與字元、字串的轉化



這是一組函式,在標頭檔案<stdlib.h>中

字串轉數字


atoi();//把字串轉化為整形。
atol();//把字串轉化為長整形。
atof();//把字串轉化為雙精度浮點型。
strtod();//將字串轉換為雙精度浮點型值,並報告不能被轉換的所有剩餘數字。
strtol();//將字串轉換為長整值,並報告不能被轉換的所有剩餘數字。
strtoul();//將字串轉換為無符號長整型值,並報告不能被轉換的所有剩餘數字。

數字轉字串


itoa();//將整型值轉換為字串。
ltoa();//將長整型值轉換為字串。
ultoa();//將無符號長整型值轉換為字串。
gcvt();//將浮點型數轉換為字串,取四捨五入。
ecvt();//將雙精度浮點型值轉換為字串,轉換結果中不包含十進位制小數點。
fcvt();//指定位數為轉換精度,其餘同ecvt()。

指標的轉換



指標強制型別轉化


TYPE1* point1;
TYPE2* point2;
point1 = (TYPE1*)point2;

舉例


void *buffer;
char *p_addr = (char *)buffer;

或者

//記憶體分配相似時的指標型別變化
struct sockaddr_in server;
memset(&server, 0, sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(4444);
server.sin_addr.s_addr = inet_addr("192.168.0.101");
int result = connect(sockfd, (struct sockaddr*)&server, sizeof(struct sockaddr));//呼叫時轉化了