当前位置: 首页 > wzjs >正文

许昌市住房和城乡建设部网站南宁网站建设服务公司

许昌市住房和城乡建设部网站,南宁网站建设服务公司,网页微信能不能传文件,成都公司做网站1-1 数据类型转换 在C语言中,数据类型转换(也称为类型铸造或类型转换)是一个重要的概念,它允许你将一种数据类型的值转换为另一种数据类型。然而,在进行类型转换时,有一些关键点和注意事项需要牢记&#xf…

1-1 数据类型转换


在C语言中,数据类型转换(也称为类型铸造或类型转换)是一个重要的概念,它允许你将一种数据类型的值转换为另一种数据类型。然而,在进行类型转换时,有一些关键点和注意事项需要牢记,以避免潜在的错误和不正确的结果。以下是一些主要的数据类型转换注意事项:


1.0 隐式转换


隐式类型转换(自动转换):

在表达式中,charshort等小整型会被自动提升为intunsigned int可能导致符号扩展问题

#include <stdio.h>int main() {char ch = 'A'; // ASCII value of 'A' is 65int i = ch;    // Implicit conversion from char to intprintf("i = %d\n", i); // Output: i = 65return 0;
}

示例:浮点提升

#include <stdio.h>int main() {int a = 5;double b = 2.5;double result = a + b; // Implicit conversion of 'a' to doubleprintf("result = %lf\n", result); // Output: result = 7.500000return 0;
}

2.0 显式类型转换(强制转换)


示例:浮点转整数(精度丢失)

#include <stdio.h>int main() {float f = 3.99f;int i = (int)f; // Explicit conversion, fractional part is lostprintf("i = %d\n", i); // Output: i = 3return 0;
}

浮点数转化为小数会把小数部分全部截断,然后小数部分省略掉


示例:溢出风险

#include <stdio.h>int main() {unsigned short us = 65535; // Maximum value for unsigned shortus = us + 1;               // Overflow occurs, us becomes 0printf("us = %u\n", us);   // Output: us = 0return 0;
}

示例:指向不同类型指针的转换(不推荐)

#include <stdio.h>int main() {int x = 10;void *vp = &x;int *ip = (int*)vp; // Explicit conversion from void* to int*printf("*ip = %d\n", *ip); // Output: *ip = 10// Attempting to dereference incorrectly can lead to undefined behaviorchar *cp = (char*)vp;printf("*cp = %d\n", *cp); // Behavior depends on system's endiannessreturn 0;
}

3.0 结构体和联合体


示例:结构体成员访问(无直接转换)

#include <stdio.h>struct Point {int x;int y;
};int main() {struct Point p = {10, 20};int *ptr = (int*)&p; // Accessing members through pointer arithmetic (not recommended)printf("x = %d, y = %d\n", ptr[0], ptr[1]); // Output: x = 10, y = 20return 0;
}

示例:联合体的特殊性


#include <stdio.h>union Data {int i;float f;
};int main() {union Data data;data.i = 123456;printf("data.i = %d, data.f = %f\n", data.i, data.f); // Output depends on representationreturn 0;
}

4.0 浮点数与整数的转换


示例:整数转浮点数

#include <stdio.h>int main() {int i = 100;float f = (float)i; // Conversion from int to floatprintf("f = %f\n", f); // Output: f = 100.000000return 0;
}

5.0  常量表达式的转换


示例:整数常量默认类型

#include <stdio.h>int main() {long l = 2147483648; // This value exceeds the range of int, so it's treated as longprintf("l = %ld\n", l); // Output: l = 2147483648return 0;
}

示例:浮点常量默认类型

#include <stdio.h>int main() {float f = 3.14f; // Specifying 'f' suffix makes it a floatdouble d = 3.14; // Without suffix, it's treated as double by defaultprintf("f = %f, d = %lf\n", f, d); // Output: f = 3.140000, d = 3.140000return 0;
}

......

http://www.dtcms.com/wzjs/136893.html

相关文章:

  • 在哪里买空间做网站网站推广优化服务
  • 六安网站线上引流多少钱香港域名注册网站
  • 徐州cms建站系统河南seo技术教程
  • 网站建设公司优惠大酬宾活动八八网
  • asp.net 网站压缩网络营销专业是做什么的
  • 网页微博怎么回到旧版优化网站建设
  • 简述建设iis网站的基本过程强力搜索引擎
  • 建设工程合同的分类旺道智能seo系统
  • 遵义网站设计制作网站seo推广有哪些
  • 长治网站建设培训文件中国站长网站
  • 构建一个网站需要什么百度投流
  • 做网站需要服务器查询吗公司seo
  • wordpress主题添加一个自定义页面seo课程简介
  • 网站权重怎么提升永久免费google搜索引擎
  • 营销型企业网站建设痘痘怎么去除有效果
  • 学院的网站怎么做郑州seo代理商
  • 免费在线做高考试题的网站免费涨1000粉丝网站
  • 网站设计与运营第二次百度在线使用网页版
  • 外贸网站做流量产品销售方案与营销策略
  • 网站制作三站火蝠电商代运营靠谱吗
  • 浏览器怎么连接网站的新网站怎么做推广
  • 做网站客户网站权重查询接口
  • photoshop基础入门教程关键词排名优化软件
  • 网络规划设计师资料网络优化师
  • 电子商务公司建设网站方案百度如何快速收录
  • 平台网站建设设计seo快速提升排名
  • 在国外做盗版电影网站百度seo优化规则
  • 网站开发专利广州网络推广哪家好
  • wordpress点击换图seo教程视频论坛
  • 全球军事网站seo建站还有市场吗