美文网首页
面向java的C语言学习路程(二)

面向java的C语言学习路程(二)

作者: 巧克力er | 来源:发表于2017-11-07 18:00 被阅读0次

    C在语法结构上是很多与java相似甚至是相同的,下面罗列二者的异同

    1.命名规则

    这一点可以说是和java基本属于完全相同的,这里说一下C的命名规则
    ①:只能由字母,数字,下划线,或者美元符号($)组成
    ②:不能以数字开头 ;
    ③:区分大小写,通常变量名和函数名都用小写字母表示;
    ④:不能和C语言中的32个关键字重名。(关键字查询可以查看上一篇中的介绍C语言中的关键字)
    看见没有这些规则和java中的命名规范基本一样

    2.分隔符,与注释

    分隔符与java相同理解,注释在 C 中主要有两种方式:
    ①:单行注释 //这里是注释;
    ②:多行注释 /* 这里是注释 */;

    3:main函数看异同
    C 中的main函数
    4:控制台打印

    printf("%d", a);
    这里看到”%d“,想起来java中也有这中写法,对没错在java中的String类中提供了一个叫format(String patten,String repalceValue);的方法。

    5:数据类型比较
    数据类型的意义

    编程的实质就是把变量中保存的内容进行处理,最终返回一个处理后的结果。

    而计算机用于保存不同变量的内部结构是不同的,最直接的不同就是在内存中为这个变量申请的空间大小不同。因此,我们在定义变量的时候应该告诉计算机这是一个什么类型的变量,这就是数据类型的意义。

    一定有人会问,计算机为啥不给每个变量都分配一个足够大的空间,这样大家就可以使用同一种数据类型了,不用再做区分。这是因为最早的计算机内存是非常有限的,如果你只需要保存很小的数据却用了非常大的空间,那就造成了极大的浪费。如今内存越来越便宜,空间越来越大了,但节省空间开销依然是软件开发的一个重要原则。

    话说有些脚本语言比如JavaScript中是淡化数据类型的,所有的变量都使用统一的数据类型var。有兴趣的同学可以了解一下。

    先看下java中的数据类型:

    java基本数据类型(8种):

    char,short,int,long,float,double,char,boolean

    C 中的基本数据类型(6种)

    char(1个字节),short(2个字节),int(4个字节),long(8个字节),float(4个字节),double(8个字节)

    6:运算符

    对于加减乘除运算,和java相同。

    7:数据类型转换

    main()
    {
    float f;

    f = 6.6 / 3;
    printf("f = %f\n",  f);
    
    f = (int)6.6 / 3;
    printf("f = %f\n",  f);
    
    f = (int)(6.6 / 3);
    printf("f = %f\n",  f);
    

    }

    运行结果:


    运行结果
    8:关系运算符

    关系运算符中返回值在java中返回只有两种形式:
    true
    false
    但是在 C 中我们前面有说到 C 中没有boolean类型,因此 C 中使用的是:
    1:表示返回的是true;
    0:表示false;
    准确来说在 C 中0表示false,非0表示true。

    9:逻辑运算符

    java:中&,||,!(且或非)。
    C :中&&,||,!
    在 C 中对于逻辑运算符返回的结果和java中是一样的,但是值得注意的是在java中&&和&是有区别的:
    java中:
    1.&当左边返回的是false右边的直接不运行
    2.&&两边都会运行
    C中:&主要有两个作用:
    1.&a 获取变量a在内存中的地址
    2.& 两边同时为真的时候才返回真,否则返回假。

    案例

    在java中经常面试的时候会遇到这样的一个问题:
    有两个数 a 和 b 在不使用第三个变量的情况下交换这两个变量的值
    public static void main(String[] args) {
    int a = 1;
    int b = 2;
    a = a + b;
    b = a - b;
    a = a - b;
    System.out.println(a);
    System.out.println(b);
    }
    C 中的方法:


    image.png

    在java中也有异或运算。。。。
    其实在java中这种运算也是可以的。


    image.png
    这里不得不说下语言的魅力,"简单,快速"。。
    移位运算,三元表达式,",",sizeof()

    这里说下最后两个,
    ",":
    int x, y;
    x = 50;
    y = (x -= 5, x / 5); //y最后返回9,先算括号中左边在算右边
    sizeof():
    这个函数返回的是字节长度,java中是没有这种方法的,在java中对象才有长度,对于基本数据类型,在java中提供了包装类,那么在 C 中对于基本数据有没有相关的”包装类“?

    欲知后事如何,请点赞吧,哈哈。。。。

    相关文章

      网友评论

          本文标题:面向java的C语言学习路程(二)

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