网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月07日
漏签
0
天
c语言吧
关注:
798,947
贴子:
4,358,072
看贴
图片
吧主推荐
视频
游戏
14
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
大佬们,本小白有一点疑问。。。
只看楼主
收藏
回复
想个名字真几把
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
1.只读变量和常量的区别在哪里呢?难道只有分不分配内存位的区别吗?
2.对比double(双精度浮点数),float型(单精度浮点数)存在的意义到底在哪呢?我只能想到它能节省内存。但是float型数据在压入栈(stack)中时,不还是会被转成double型吗?这样也节省不了内存啊。。
想个名字真几把
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
dd
2025-08-07 04:35:13
广告
不感兴趣
开通SVIP免广告
qweasdzzzz
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
只读不能改变 double 至少保证10位 float 6位或者7位 有效数字 float 现在 只有在作为函数参数压入栈才进行提升
杰森·杜瓦尔
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
从c语言面试题上摘下来的:关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个
参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的
垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防
止其被无意的代码修改。简而言之,这样可以减少bug的出现。
Waaaaf
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
实际上,由const修饰的变量名只意味着你不能直接使用该变量名修改它的值。
在函数参数类型未知的情况下,参数会有默认类型提升行为,具体可自行查阅C标准。现代C编程见得最多的也就是可变参数这一情况了。
想避开该默认类型提升行为的话,可以使用结构体或联合体对参数做包装,比如:
typedef union{
float a;
} TypeA;
void foo(int i, ...) {
......
TypeA a = va_arg(args, TypeA);
......
}
int main() {
......
foo(0, (TypeA){ 1.1 });
......
}
GTA小鸡
吧主
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
const变量是一个不能改变的变量,而不是常量。不能改变的变量仍然是变量,所以,它不能作为case的标签或是定义数组时的长度(不考虑VLA),而且生存周期遵守变量的规则。另外,编译器不一定要为const变量分配内存空间。
GTA小鸡
吧主
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
float存在的意义当然是相比double更节省空间而且更快,在不需要那么高精度的并行计算场景中大量使用float性能优势显著,例如3D图形学中最基础的矩阵变换。
“float压栈会变成double”这是完全错误的理解,在C语言中float只有在和double变量运算时,或是传入参数缺省的函数/变参函数中时才会提升为double。
Kyanenn
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
float精度比double低,但是运算更快、占用内存更少。深度学习几乎没有用64位浮点数的,都是32位浮点或者16位浮点
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示