全国计算机等级考试二级教程--C语言程序设计(2018年版) 随手笔记(六)

声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺序梳理,转载请注明出处。

作者:sumjess

目前内容:第十四、十五章总结

1、位运算符:

全国计算机等级考试二级教程--C语言程序设计(2018年版) 随手笔记(六)_第1张图片

全国计算机等级考试二级教程--C语言程序设计(2018年版) 随手笔记(六)_第2张图片

2、位运算符的运算功能:

      ① 按位取反: ~    每一位上的0和1互换;

      ② 左移:  <<    左移运算运算符左边是移位对象,右边是整型表达式,代表左移的位数。左移时,右端(低位)补0;左端(高位)移出的部分舍弃。

      ③ 右移:   >>    右移时,右端(低位)移出的二进制舍弃,左端(高位)移入的二进制分两种情况:对于无符号整数和正整数,高位补0;对于负数,高位补1。         

short int a =-8,b;
b=a>>2;
//a的二进制码:1111111111111000
//移位后     :1111111111111110
       ④ 按位与: &   全1为1,其它为0;

     ⑤ 按位异或: ^   不同为1,其它为0;

     ⑥ 按位或: |   有1为1,其它为0;

     ⑦ 位数不同的运算数之间的运算规则:

       (1)先将两个运算数右端对齐。

       (2)再将位数短的一个运算数往高位扩充,即:无符号数和正整数左侧用0补全,负数左端用1补全,然后对位数相等的这两个运算数按位进行位运算。

3、用typedef说明一种新类型名:

   (1)新类型名的语句一般形式为:

            typedef     类型名    标识符;

   (2)举例说明:

            typedef  int  INTEGER;

            INTEGER  a,b;    //等价于int a,b;

            也就是说:INTEGER是int的一个别名。为了便于识别,一般习惯将新的类型名用大写字母表示。

4、共用体:

   (1)共用体类型的说明:

            共用体类型说明的一般形式为:

            union 共用体标识名

            {类型名1  共用体成员名1;

             类型名2  共用体成员名2;

                           ........

             类型名n  共用体成员名n;

             };

             说明:

 其中union是关键字,是共用体类型的标志。un_1是共用体标识名,“共用体标识名”和“共用体成员名”都是由用户定义的标识符。按语法规定,共用体标识名是可选项,在说明中可以不出现。共用体中的成员可以是简单变量,也可以是数组、指针、结构体、和共用体(结构体的成员也可以是共用体)。

      (2)共用体变量的定义:

              共用体变量的定义和结构体变量的定义相似,也可以采用四种方式。例如:

              union un_1

              {   int i;

                   double x;

               }s1,s2,*p;

               这里变量s1的储存空间如图:

全国计算机等级考试二级教程--C语言程序设计(2018年版) 随手笔记(六)_第3张图片

说明:

     ① 共用变量在定义的同时只能用第一个成员的类型的值进行初始化,因此,以上定义的变量s1和s2,在定义的同时只能赋值整型值。

     ② 可以看出:共用体类型变量的定义,在形式上与结构体变量的定义非常相似,但是他们是有本质区别的:结构体变量中的每个成员分别占有独立的存储空间,因此结构体变量所占内存字节数是其成员所占字节数的总和;而共用体变量中的所有成员共享一段公共存储区,所以共用体变量所占内存字节数与其成员中占字节数最多的那个成员相等。

     ③ 由于共用体变量中的所有成员共享存储空间,因此变量中的所有成员的首地址相同,而且变量的地址也就是该变量成员的地址。

5、共用体变量的引用:

   (1)共用体变量中成员的引用:

           ① 共用体的变量名.成员名;

           ② 指针变量名->成员名;

           ③ (*指针变量名).成员名;

   (2)共用体变量的整体赋值:

           C标准允许在两个类型相同的共用体变量之间进行赋值操作。

   (3)向函数传递共用体变量的值:

           共用体类型的变量可以作为实参进行传递,也可以传送共用体变量的地址。

6、结构体类型(struct):

   (1)结构体类型的说明:

            结构体类型说明的一般形式为:

            struct 结构体标识名

            {  类型名1   结构成员名表1;

               类型名2   结构成员名表2;

                      .........

               类型名n   结构成员名表n;

             }

        其中struct是关键字,是结构体类型的标志。“结构体标识名”和“结构成员名”都是用户定义的标识符,其中“结构体标识名”是可选项,在说明中不可以出现。每个“结构成员名表”中都可以含有多个同类型的成员名,他们之间以逗号分隔。结构体中的成员名可以和程序中的其他变量同名;不同结构体中的成员也可以同名。

         注:C标准规定结构体至少允许嵌套15层,并且允许内嵌结构体成员的名字与外层成员的名字相同。

struct student
{
  char name[12];
  char sex;
  struct
  { 
    int year;
    int month;
    int day;
   }brithday;
  float sc[40]; 
}
C语言精练   https://blog.csdn.net/qq_38351824/article/details/79706916



你可能感兴趣的:(全国计算机二级C语言,C语言从入门到进阶)