1
33
您的问题已经被标记为C以及C++。所以这两种语言我都会回答。
来自ISO C99(
也就是说是的
非特定行为: 未指定值的使用,或本国际标准规定的其他行为 两种或两种以上的可能性,并没有对任何一种情况下的选择提出进一步的要求
从ISOC++- 98(C++)
实施行为:
未指定的行为,其中每个实现
另请参见 this 问题。 |
2
15
因为您的字符串文字是一个常量表达式,也就是说,您不应该通过指针来修改它,所以将它存储在内存空间中两次是没有实际意义的。作为一个较新的编译器,gcc默认情况下会合并文本,而turboc则不会。这是gcc支持新的语言标准的一个标志,该标准包含const数据的概念。 |
3
10
请把同一行的答案忘了
这两个编译器都支持将字符串常量合并为一个选项。GCC选项(
|
4
5
因此输出。 |
5
3
turboc是为快速编译而优化的,所以它没有任何会减慢编译速度的特性。识别重复的字符串将是一个缓慢的过程,即使只是轻微的。 |
6
1
在过去的好日子里,汇编程序将所有的文本保存在一个文本池中,而修补文本池是一种公认的(如果没有得到批准的话)在整个程序中修改“常量”的技术。
如果在这种情况下编译器允许
|
7
0
历史脚注:由于地址比浮点数字常量小,FORTRAN用来处理浮点常量就像C处理字符串一样。由于内存是宝贵的,相同的常量将被分配相同的空间。而且,参数传递总是通过引用完成的。这意味着,如果一个过程将一个数值常量传递给修改其参数的过程,则该“常量”的其他出现将改变该值。
顺便问一下,有没有人注意到turboc2.0printf中的错误,当使用“%1.1f”这样的格式打印99.99(输出00.0)这样的数字时会失败?修正在2.01,它让我想起Windows3.1计算器错误。 |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Manan Girdhar · 拆分字符串并仅在java中使用第二部分 2 年前 |
AnxiousLuna · Python使用len()获取数组索引数 2 年前 |
antonoyaro8 · 数据帧中每列上的Grepl 2 年前 |