变量定义
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));//调用时转化了