zoukankan      html  css  js  c++  java
  • C语言基础

    #DEFINE 定义的常量是编译器常量
    C99之前的C没有bool类型
    const修饰的变量不能修改
    整数表示方法: 八进制以 0 开头 ;十六进制以 0x 开头
    补码数值表示方法:正数为原码本身,负数为 该数的绝对值的原码按位取反 然后加1
    变量由变量名和变量值组成:变量名是一个符号地址,编译器在链接是为每一个变量名分配一个内存地址
    ANSI标准中的int占用2个字节,但是VC中的int占用4字节
    小数在计算机内存的表示结构为: |符号位(0 1 )| + |指数位(科学计数法的指数,也可以是负数,表示为小于0的小数)| +|有效数字|
    字符在内存中存储的ASCII编码值
    字符串就是以 ''结尾的的多个字符
    隐式转换的顺序是:1、char —— int —— long —— double  2、float —— double

    C语言运算符优先级

    优先级

    运算符

    名称或含义

    使用形式

    结合方向

    说明

    1

    []

    数组下标

    数组名[常量表达式]

    左到右

    --

    ()

    圆括号

    (表达式)/函数名(形参表)

    --

    .

    成员选择(对象)

    对象.成员名

    --

    ->

    成员选择(指针)

    对象指针->成员名

    --

     

    2

    -

    负号运算符

    -表达式

    右到左

    单目运算符

    ~

    按位取反运算符

    ~表达式

    ++

    自增运算符

    ++变量名/变量名++

    --

    自减运算符

    --变量名/变量名--

    *

    取值运算符

    *指针变量

    &

    取地址运算符

    &变量名

    !

    逻辑非运算符

    !表达式

    (类型)

    强制类型转换

    (数据类型)表达式

    --

    sizeof

    长度运算符

    sizeof(表达式)

    --

     

    3

    /

    表达式/表达式

    左到右

    双目运算符

    *

    表达式*表达式

    %

    余数(取模)

    整型表达式%整型表达式

    4

    +

    表达式+表达式

    左到右

    双目运算符

    -

    表达式-表达式

    5

    <<

    左移

    变量<<表达式

    左到右

    双目运算符

    >>

    右移

    变量>>表达式

     

    6

    >

    大于

    表达式>表达式

    左到右

    双目运算符

    >=

    大于等于

    表达式>=表达式

    <

    小于

    表达式<表达式

    <=

    小于等于

    表达式<=表达式

    7

    ==

    等于

    表达式==表达式

    左到右

    双目运算符

    =

    不等于

    表达式!= 表达式

     

    8

    &

    按位与

    表达式&表达式

    左到右

    双目运算符

    9

    ^

    按位异或

    表达式^表达式

    左到右

    双目运算符

    10

    |

    按位或

    表达式|表达式

    左到右

    双目运算符

    11

    &&

    逻辑与

    表达式&&表达式

    左到右

    双目运算符

    12

    ||

    逻辑或

    表达式||表达式

    左到右

    双目运算符

     

    13

    ?:

    条件运算符

    表达式1?

    表达式2: 表达式3

    右到左

    三目运算符

     

    14

    =

    赋值运算符

    变量=表达式

    右到左

    --

    /=

    除后赋值

    变量/=表达式

    --

    *=

    乘后赋值

    变量*=表达式

    --

    %=

    取模后赋值

    变量%=表达式

    --

    +=

    加后赋值

    变量+=表达式

    --

    -=

    减后赋值

    变量-=表达式

    --

    <<=

    左移后赋值

    变量<<=表达式

    --

    >>=

    右移后赋值

    变量>>=表达式

    --

    &=

    按位与后赋值

    变量&=表达式

    --

    ^=

    按位异或后赋值

    变量^=表达式

    --

    |=

    按位或后赋值

    变量|=表达式

    --

     

    15

    逗号运算符

    表达式,表达式,…

    左到右

    --

    说明:

        同一优先级的运算符,运算次序由结合方向所决定。
        简单记就是:! > 算术运算符 > 关系运算符 > && > || >
    赋值运算符

         对于长表达式,可以通过添加括号()来增加理解

     

    ++i 的意思是:在使用i之前,先使i的值加 1
    i++ 的意思是:在使用i之后,使i的值加 1
     
    C语言的类型结构:
    1. 基本类型
      1. 整形
      2. 字符型
      3. 小数
      4. 枚举
    2. 构造类型
      1. 数组
      2. 结构体
      3. 共用体
    3. 指针
    4. 空类型
     
    数组是同一种类型的多个变量的组合。
    申明和初始化定义的方式如下:
    1. int a[10]={0,1,2,3,4,5,6,7,8,9}   完全初始化
    2. int a[10]={0,1,2,3}   部分初始化  其他元素为0
    3. int a[10]={1}  初始化为同一个值
    4. int a[]={0,1,2,3,4}  不用指定大小
    表达式 char c[]={"I love lili"}  定义了一个长度为12的字符数组,其中最后一个元素c[11]=''
     
    结构体的声明:
    struct student
    {
         int age;
         char sex;
         char name[20];
    };
    定义 struct student student1,student2;
    或者
    struct student
    {
         int age;
         char sex;
         char name[20];
    }student1,student2;
    在定义结构体时务必要注意数据对其对性能的影响

    共用体与结构体的声明定义方式相似,只是将struct换成union就可以了。共用体占用的内存数等于最大成员变量的大小。在一瞬间只能存放其中的一种成员。
     
    定义枚举 enum weekday{SUN,MON,TUE,WED,THU,FRI,STA}day;
     
    变量的指针就是变量的地址
    只能将变量的地址赋值给指针
     
    int i;               变量
    int *point_i;     指针
    i=10;
    point_i = &i;
     
    int dummy(){}  空函数 :等以后扩充函数功能时补充上
     
    声明函数的时候可以不用写形参
    在函数内部定义的变量就是局部变量
    在函数外部定义的变量就是全局变量
     
    static 是静态变量,在函数内部申明,但是函数执行完毕后,不会释放。
    如果没有初值,编译时会自动赋值为0或者空字符。
    register 将变量放在寄存器中
    extern 使得其他的文件能够访问的变量,不用包含.h文件??
     
    static void print()  静态函数:只能被本文件中的其他函数所调用
    extern void eat() 外部函数其他文件可以调用
     
    #define WIFE char *name[]={"lili"}
    宏定义就是字符串缩写,在编译的时候将缩写替换为原句
    #undef 取消宏定义
     
    #ifdef 标识符
         程序段1
    #else
         程序段2
    #endif
     
  • 相关阅读:
    博客园第一篇随笔css3动画(奔跑的小杨)
    Python输出菱形
    Android开发经验总结
    Android中Activity共享变量的另一方法:Application context
    system()与execv()函数使用详解
    Sublime Text2 编译和运行C/C++程序(windows)
    Android View.post(Runnable )
    Android图像处理之Bitmap类
    android中dip、dp、px、sp和屏幕密度
    System.setProperty and System.getProperty
  • 原文地址:https://www.cnblogs.com/pavkoo/p/3460117.html
Copyright © 2011-2022 走看看