C语言的冷知识

链接:C语言冷知识「小众,但有用」 (qq.com)

1、数组下表

arrayName[index]   可以写成   index[arrayNane]

例:#include <stdio.h>

       int main(void)

       {int arr[5]={1,2,3,4,5};

         printf("%d\n",2[arr]);

        return 0;}              //输出结果:3

2、符号替换

早期IBM在计算机产业中的地位非常重要,但是它的键盘没有中括号和大括号按键,所以在C语言中可以使用其它的组合符号来替代,并且一直保留到现在。

可以使用 <: 和 :> 来代替 [ 和 ] ,使用 <% 和 >% 来替换 { 和 }。

 

3、趋近运算符

 

C语言中有一种趋近运算符,写作 -->  或者  <--,可以让一个变量的值逐渐趋近于某个数字。

 

 输出结果是:10,9,8,7,6,5,4,3,2,1

其实 <-- 就是小于运算符 < 和自减运算符 -- ,因为 -- 的优先级大于 < ,所以先执行 -- ,再执行 <

所以示例里面先 --x,再与 0 进行比较。

4、字符串拼接

 将2个由 “ ” 包围的字符串放在一起,它们会自动拼接成一个字符串。

 

 输出结果:C C++Python

注:

 

 5、long不一定比int长

C语言有三种基本的整数类型,分别是short、int、long,其实后者的长度不一定比前者大

C语言中没有严格规定short、int、long的长度,只做了宽泛的限制:

 

 所以它们的关系是:2≤ short ≤ int ≤ long

在16位环境下,short的长度为2个字节,int也为2个字节,long为4个字节。

对于32位的windows、Linux和Mac OS,short的长度为2个字节,int为4个字节,long也为4个字节。

在64位环境下,不同的操作系统会有不同的结果

 

 所以在移植的时候要注意long所占的字节长度。

6、1字节不一定等于8位

C语言标准里面并没有规定1字节等于8位。只是规定一个字节必须能够以正数的方式容纳整个ASCII编码表,但具体实现还要依赖编译器。所以可以通过CHAR_BIT这个宏来获取当前编译环境下的字节长度。

 

posted @ 2022-09-16 11:45  笙箫涩  阅读(157)  评论(0编辑  收藏  举报