美文网首页
C语言【上】

C语言【上】

作者: 神奇的海螺丶 | 来源:发表于2016-09-12 17:57 被阅读0次

    一个C程序有且只有一个入口main

    程序是从{开始一步步运行,当程序碰到return时结束运行

    1.C语言程序的编译

    1> gcc xx.c都会默认生成一个a.out的文件

    2> gcc xx.c -o 目标文件

    2.C语言程序的执行

    ./a.out

    ./目标文件

    3.注释方式

    /*

    多行注释

    */

    //单行注释

    /**

    块注释并且可以自动标识

    */

    4.常量:不可改变的量,不可以作为左值

    1>整型常量:1 2 3

    2>浮点常量:4.5 2.1

    3>字符常量:'c' 'a' 'b'

    4>字符串常量: "hello" "h"←也是字符串常量,因为系统隐藏了一个"h\0"

    变量定义:数据类型(int)

    变量初始化:数据类型(int) 变量名=初值;

    5.变量:可以改变的量,可以作为左值

    注意:同一代码块变量名不能相同

    整型变量:int 变量名

    浮点变量(实型):float double

    字符变量:char

    int = 'c'

    int a = 9;

    printf("a=%d\n",a);

    float a1 = 7.8;

    double a2 = 8.9;

    char a3 = 8.9;

    printf("a1=%f\n",a1);

    printf("a2=%f\n",a2);

    printf("a3=%c\n",a3);

    二进制:0-1,

    八进制:0-7 012

    十进制:0-9 12

    十六进制:0-f 0X12

    大端法:低位上的数据存储在高的字节地址

    小端法:低位上的数据存贮在低的字节地址

    注意:网络上内容传输会用

    %m.nf:m>n+1+整数部分实际的位数才有效,m代表宽度(算上小数点,如果不够,用空格在左边补全),n代表.后面的位数

    %-m.nf:左对齐

    printf

    %d:十进制的整型数据

    %ld:十进制的整数数据,最好用ld

    %c:字符类型的数据

    %f:浮点型数据,如果不指定任何宽度的限制,默认小数点后六位

    &lf:十进制数,可以有小数点及指数部分 最好用lf

    %p:地址,&

    &符号

    &变量名:是取这个变量对应的首地址

    printf("\"***\"");

    可以打印出双引号

    printf("%%%d\n",78);

    打印出%78

    单引号:可以直接打印'',也可以用\''

    问号:\?,?

    反斜杠:用两个反斜杠\\

    int a;

    scanf("%d",&a);

    printf("a=%d\n",a);

    scanf

    scanf("%d",&a);

    scanf("%d%d",&a,&b);

    注意:scanf回车残留,使用getchar();或getc(stdin);吸收单个字符

    表达式由操作数和运算符组合而成

    操作数可以是变量、常量、表达式

    运算符主要有:

    位预算符【只用于整数 补码存储 原码输出】:

    << :向左移

    >> :向右移 【先算出数的2进制得出原码。算出补码再计算。计算机只存补码】

    ~:取反运算(正数负数)

    8:0000 1000

    取反:1111 0111

    -1:1111 0110

    原码:1000 1001

    |:【有1就为1】(图1)

    ^【只要不同就为1】

    &【有0就为0】

    条件运算符:? :

    取地址运算符:&

    寻地址符:[] *

    求字节数运算符:sizeof()

    强制类型转换运算符:(type)

    优先级运算符:()

    分量运算符:. ->

    -1+1=0

    1:0000 0001                  ----反码 0000 0001 补码【反码+1】0000 0001

    -1:1000 0001【-号是最高的1】 ----反码 1111 1110            1 1111 1111

    原码:                                                    10 0000 0000

    反码:整数的反码与原码相同,负数的反码在原码的基础上,符号位不变,后面依次取反。

    补码:整数的补码与原码相同,负数的补码在反码基础上加1

    -9:原码:1000 1001

    反码:1111 0110

    补码:1111 0111

    强制类型转换:(数据类型)变量名

    无论是什么运算,计算机只执行相同类型计算

    如果是不同类型计算,将会进行类型转换。

    一元运算符:(单目运算符)

    二元运算符:(双目运算符)

    关系运算符: > >= < <= == !=

    i+++j先算(i++)+j

    if分支

    if(条件)

    {

    语句1

    }

    else if(条件)

    {

    语句2

    }

    else

    {

    语句3

    }

    注意:如果有else,只能放在最后

    switch分支结构

    switch(变量名)

    {

    case 常量1:

    语句1

    break;

    case 常量2:

    语句2

    break;

    default:

    break;

    }

    注意:

    1>case后面必须是常量

    2>每一个语句后面都必须要有break

    3>default的位置随便放,可以不省略

    4>case后面的常量不能相同

    sizeof(数据类型或变量):计算数据类型或变量所占的字节大小

    【图2】

    long:32位机:4 64位机:8

    条件运算符

    表达式1?表达式2:表达式3

    如果表达式1成立,就计算表达式2,将表达式2的结果作为最终整个表达式的结果

    如果不成立,就计算表达式3,建江表达式3的结果作为最终整个表达式的结果。

    【图3】

    当计算多个数的比较

    【图4】

    相关文章

      网友评论

          本文标题:C语言【上】

          本文链接:https://www.haomeiwen.com/subject/swwpettx.html