• 21年3月21日C语言概述(二)


    1. 关于C语言中 的使用

    2.字符串的长度与大小

     3.char类型的赋值

     4.char的边界

    5.字符串赋值里带上   (转义字符的使用)

    6.代码区,数据区,堆区,栈区      与     生存周期

    7.C语言的取模

     

    1. 关于C语言中 的使用

       

    出现 后,后续的字符串从开头进行覆盖式的写入。注意,为什么有个空格?因为 也被写道前面了。

    2.字符串的长度与大小

     sizeof算出大小,字节单位。char类型的大小是1字节。

    字符串stra虽然没有字符,但是字符以结束。不算入长度,但是算入大小。     所以stra大小一字节,长度0;

    字符串straa输入的字符是空格,空格也算一个长度。                                                所以大小是2字节(空格+),长度是1。

    字符串strb就正常的多。     长度9,大小10,易辨认。

    字符串strbb,字符的输入中有,这算一个字节,所以大小是(hello++word+)=11。注意他的长度长度在输出的时候遇见就结束,所以长度是5(他的输出只有hello)

     3.char类型的赋值

    a赋值的时候赋的是字符0,字符0的ASCII值在十进制中是48,也就是说字符是以ASCII值的形式存储的。

    b赋值的时候是,就是啥也没赋值,含义是空(null)。    b='';  这个意思    (但是  b='';  在编辑器不通过,报错。所以说意思是这个意思

    c赋值的是数字0,数字0在对应的ASCII中,字符是null。    空字符也有对应的ASCII值,就是0   

                  

    d赋值就是把变量a的值在赋给它,这里赋的是变量a,不是字符a;

     4.char的边界

    char的范围是 -128~127 :因为char是一位,占8个比特 >> 0000 0000 (其中第一位表示正负,0为正 / 1为负),

    8个比特能表示的数有255个,其中负数分去128个,非负数分去127个(含0)

    0111 1111表示正数的最大值   >>  0111 1111的十进制是127  >>  范围是0000 0000 ~ 0111 1111  (0~127)

    1000 0000表示负数的最小值  >>  1000 0000的十进制是128,但是第一个表示符号,所以是-128  >>  范围是1111 1111 ~ 1000 0001 (-127~-1)  + 1000 0000(-128)

        

     

    5.字符串赋值里带上   (转义字符的使用)

          

    字符串里有 *** ,表示八进制,其中*表示3个数字。八进制的141换算成10进制是97,也就是a的ASCII值。

    如果是abc148de,输出就是abc+八进制对应的字符+8de。注意这里的8,之所以以字符的形式出现,是因为超出了8进制

    字符串里有 x**,表示十六进制,其中*表示2个数字。规则同上,注意16进制越界的问题。(如下图)

    6.代码区,数据区,堆区,栈区      与     生存周期

     

    代码区,存放函数

    数据区,存放全局变量。  当进程开始的时候,全局变量生;进程结束,全局变量死

    堆,自己开辟,自己释放

    栈 ,存放局部变量。   当函数被调用的时候,局部变量生;函数执行完后,局部变量死。

    7.C语言的取模

    对于整型数a,b来说,取模运算或者求余运算的方法都是:
    1.求 整数商: c = [a/b];
    2.计算模或者余数: r = a - c*b.
    求模运算和求余运算在第一步不同: 取余运算在取商c的值时,向0 方向舍入(fix()函数);而取模运算在计算商c的值时,向负无穷方向舍入(floor()函数)。
    例如计算:-7 Mod 4
    那么:a = -7;b = 4;
    第一步:求整数商c,如进行求模运算c = -2(向负无穷方向舍入),求余c = -1(向0方向舍入);
    第二步:计算模和余数的公式相同,但因c的值不同,求模时r = 1   -7-(-8)=1,求余时r = -3    -7-(-4)=-3
    归纳:当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。
    当符号不一致时,结果不一样。
    另外各个环境下 % 运算符的含义不同,比如c/c++,java 为取余,而python则为取模。

    总结:就是商不同,取余的商偏向于0     >>  c/c++,java 为取余

             取模的商偏向于负无穷   >>   python则为取模

    Linux学习笔记
  • 相关阅读:
    Single Number II
    Best Time to Buy and Sell Stock
    Linked List Cycle
    Single Number
    Max Points on a Line
    Strategy
    LRU Cache
    Word Break II
    Text Justification
    Median of Two Sorted Arrays
  • 原文地址:https://www.cnblogs.com/zealwang/p/14563426.html
Copyright © 2020-2023  润新知