C語言程式設計--型別轉換
阿新 • • 發佈:2019-01-09
變數定義
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));//呼叫時轉化了