zoukankan      html  css  js  c++  java
  • 记中兴软件园一个月实训(一)

      马上大四了,在学期末学校一年一度的企业实训体验开始了。

    其实现在已经接近尾声,只是把学到的东西整理一下,供各位君闲聊查看。

    /**********这个是第一天的笔记*************************/

    /*
    一:程序的结构
    工程 sln
    文件 .c 文件包括:函数的定义 变量的定义
    .h 文件包括:存放声明 类型的定义 宏定义

    函数:
    主函数
    子函数
    语句
    单词 字母数字下划线 开头不能是数字
    二:
    数据类型 --->size 范围
    分类:
    1.基本类型
    整形 有符号 无符号
    实型
    字符型 :unsigned char [全0~~~全1]
    char [~~~0+全1] 1 0000000 当看到这种情况 1即看作符号位 又看作数字位
    这里特别注意当溢出的时候:

    /////////2016.05.26日修改////////////////////////////////

    (当溢出的时候都是把最前面的1看做符号与数字)(这句话错误)

    当溢出时,只有1000 0000 这种情况可以把开头的“1”,即看做符号位,又看做数字位。

    其他情况都是只看做符号位:

    例子如下:

    在这个例子中,char型溢出了,但是输出确是-128

    可以这样理解:这里的1既是符号位,又是数字位

    当我打印129时,你猜会出现什么情况?

    为啥是-127呢?

    让我一点点分析:

    129,用二进制表示为 1000 0001

    可是这种表示在char,有符号中表示 -1 ,数字在计算机中都是以补码形式表示的,因此:

    原串:1000 0001

    取反:1111 1110

    加一:1111 1111   转成十进制:-127

    所以 130,转成以后是-126

    131,转成以后是-125

    …………

    09:54补充 无符号类型unsigned char类型溢出处理办法:

    8 bit的无符号类型unsigned char能表示0 至 255 之间的值,因此,如果你赋予了超过这个区间的值时,实际结果是该值对256取模所得的余数。

    因此,当你把-1赋给8 bit大小的unsigned char时,所得的结果是255.

    下边分析:

    -1的二进制:1000 0001

    取反     :1111 1110

    加一     :1111 1111  -1的补码,转成无符号:255

    255 % 256 余数 255

    因此打印出255

    更深层次的现在还分析不出来,看C++ Primer有感

    上午09:34 于广州

    可能有错误,有的话希望可以指正

    \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


    常量:用一对单引号括起来的叫做字符常量 ‘1’
    short int b = 0; 2Byte -2^15~~2^15-1
    int c = 0; 4Byte -2^31~~2^31-1
    long d = 0; 4Byte -2^31~~2^31-1
    long long ll = 0;8Byte -2^63~~2^63-1

    unsigned short int usi = 0U; 2Byte(0~~2^16-1)
    unsigned int ui = 0U; 4Byte(0~~2^32-1)
    unsigned long int uil = 0UL; 4Byte(0~~2^32-1)
    unsigned long long int ulli = 0; 8Byte(0~~2^64-1)

    float f = 0.F; 4Byte
    double d = 0; 8Byte
    long double ld = 0; 8Byte

    2.构造类型
    结构体
    共同体结构
    指针类型
    空类型 void
    二:常亮及变量
    2_1
    1、 变量要占据内存 内存的大小由“数据类型决定”
    2、 变量的内存是有名字的,名字就是变量名
    3、 变量的内存是可读可写的
    2_2
    1、常亮也是要占据内存的,内存的大小由数据类型决定
    2、常亮的内存是只读的,不可以写
    3、字符串常亮是用双引号引起来的字符
    然而:“China"长度是0 但是占据了7个字节的内存
    字符串的长度:从左到右计数,遇到第一个''截止
    字符串的尺寸:字符串占据的字节数
    “China”5个长度 6个字节
    "usa" 0个长度 5个字节
    4、字符常亮 用单引号引起来的一个字符 'a' 'b'
    分类:' ' ' ' 字符转义
    'ddd' 'xff' 数值转义
    小细节:'ddd' (0~~~377) 不会是777 已经超出
    'ff' (x0~~~xff)
    "12345abc" 占用字节数8个
    长度是7个
    "378"已经超出 所以 3个/2个
    x0abcd = x0a b c d
    三:函数
    作用域:名字的使用范围
    在同一个作用域内不能出现相同的标示符
    名字只能在作用域内使用
    作用域采用就近原则
    作用域的分类
    1、文件作用域
    2、函数作用域
    3、语句块作用域
    int g_count = 0; global的意思
    int g_foo = 0;

    nCount = 0;
    nFir = 0;
    3_4 作用域扩展
    只能扩展文件作用域内的名字 不能扩展作用域之外的名字
    局部作用域不能扩展

    静态变量在编译时确定执行

    3_5 递归调用 自己调用自己
    要写好终止条件 终止条件放在递归之前
    递归会频繁开辟释放内存,影响效率

    3_6 字符串存放的是首字母地址 不管作参数还是变量
    char str[] = "I Love You";//两个字符串,一个在数组中 一个在常亮中 地址不一样
    char *p = "You Love me";//只读,不可写

  • 相关阅读:
    c# 遮罩
    判断当前task中的运行的activity是否为当前应用
    Chrome+SwitchySharp+myentunnel+SSH
    vps
    系统制作
    vs2010 mfc
    android ndk
    乐 Phone刷机教程(全过程)
    mysql 保留字 冲突
    mysql 存储过程
  • 原文地址:https://www.cnblogs.com/ccccnzb/p/4634646.html
Copyright © 2011-2022 走看看