初识编程

1 .  C语言中的常见的数据类型有:char (1个字节,8位 )       short(2个字节,16位)      int (2/4个字节,16 字节/32个字节)            long int (4个字节,32位)        long long int(8个字节,64位)

  2.  计算机存储的是补码。负数的补码:取绝对值,取反,加一。

3.有符号类整型最高符号位即表示符号位又表示数值(又称魔鬼数或幻术)。

4.如果在编写程序时,未标明数是否为有符号类型,则计算机在编译程序时默认为有符号位。

5.计算机在编译程序时的顺序:源代码(.c    .cpp   .h) ---预编译----(    .i     )-----编译----(  .s      )------汇编-----(   .obj         .o  )------链接------(   .exe    )。

6.   浮点数:float(4个字节,单精度)    double(8个字节,双精度)。

7.#include<stdio.h>    //预处理指令,表示调取库函数中的"stdio"文件,

  #include "max.h"    //表示调取当前文件中的头文件。

8.一个项目中只能有一个主函数(主函数是所有程序的入口)。

9."  //   "表示行注释,"/* ----------------------------*/"表示代码块注释(代码块注释不能嵌套),

    "#if---------------------------/*---------------------*/-----------------#end if "(此种块注释可嵌套)。

10.sizeof()的用法:

1) 返回 类型 的对象表示的字节数。

2) 返回当 表达式 求值时所返回的类型的对象表示的字节数。

sizeof(char)、sizeof(signed char)、sizeof(unsigned char) 总是返回 1。

不能对函数类型、不完整类型或位域泛左值使用 sizeof。

当应用于引用类型时,其结果是被引用类型的大小。

当应用于类类型时,其结果是该类的对象的大小与这种对象放入数组时所需的额外填充的大小的总和。

当应用于空类时,总是返回 1。

 当应用于某个表达式时,sizeof 并不对表达式进行求值,并且即便表达式所代表的是某个多态对象,其结果也是该   表达式的静态类型的大小。不进行左值向右值、数组向指针和函数向指针转换。不过,其在形式上对纯右值实参实施临时对象的实体化: sizeof 确定其结果对象的大小。

     int a=10;
     int n=sizeof(a);
      printf("%d%d\n",a,n);   //输出的结果为10  4

    int m=sizeof(a++);
    printf("%d  %d\n",a,m);  //输出的结果为10  4

11.强制类型转换:

1).类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。

2).无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

12.‘\0’是c/c++语言中的字符串结束符,在ASCII字符集中对应空字符NULL。

      '0'是字符常量,在ASCII字符集中,数字‘0’的代码是48,运用不同的格式,其作用也不 同,要求输出值为\d类型是其值可代表为48,为\c类型时其值为0等等用法。对于所有的数字格式,用前导0填充字段宽度,若出现-标志或者指定了精度(对于整数),忽略。

      %d整型输出,%ld长整型输出,
      %o以八进制数形式输出无符号整数,
       %x以十六进制数形式输出无符号整数,
      %u以十进制数输出unsigned型数据(无符号数)。
        %c用来输出一个字符,
      %s用来输出一个字符串,
     %f用来输出单双精度实数,以小数形式输出,
      %e以指数形式输出单双精度实数,

    %E以指数形式输出单双精度实数(大写),

13.常量:

     常量被定义后就不能修改了,C语言定义常量常用的方法有以下2种:

     第一种:宏定义
      #define PI 3.14  // 定义了一个常量为3.14的宏PI,

       第二种:通过const定义

         const float pi= 3.14;  // 通过const定义一个float型常量pi

       (define是预定义 编译器在编译时会将其替换成你定义的字符 他不会开辟内存空间
           而const 修饰的变量或者是成员函数 会开辟内存空间的
            并且const 修饰的成员函数里面不能修改 对象的成员变量的值)

14.if else和switch:

          if else和switch两者本质的区别是 if-else语句更适合于对区间(范围)的判断,而switch语句更适合于对离      

         散值的判断。

          所有的switch语句都可以用if-else语句来替换(因为if-else语句只需对每个离散值分别做判断即可),而  

          并不是if-else语句都可以用switch语句来替换(因为区间里值的个数是无限的,并且switch所接受的值只能是

          整型或枚举型,所以不能用case来一一列举)。所有的switch语句都可以用if-else语句来替换(因为if-else

         语句只需对每个离散值分别做判断即可),而并不是所有的if-else语句都可以用switch语句来替换(因为区间里

           值的个数是无限的并且switch所接受的值只能是整型或枚举型,所以不能用case来一一列举)。

       switch用来根据一个整型值进行多路分支,并且编译器可以对多路分支进行优化,所以在多路分支时

        用switch比if..else 结构要效率高。   

15. switch 分支:

         在switch语句中short 、int 、char类型都可以,byte、float、double都不行(switch语句后面的表达式可以是

        字符型,整型,枚举型。)因为浮点类型表示的值不想整型那么精确,不能确定执行那个case的语句。

16.逻辑运算符的优先等级:

           !  >   &&   >  ||           //   ! 的等级是三者中最大的

           【!  >   算术运算符    >    关系运算符    >   &&和||     >     赋值运算符  】

           举例:a+b>c        //优先等级为(a+b)>c

                     a-b && c+d || !e   //优先等级为(a-b)&&(c+d)||(!e)

                     m = a+b+c  && !d  //优先等级为 m = (a+b+c) && ( !d )

猜你喜欢

转载自blog.csdn.net/weixin_41197086/article/details/81567132