• Android JNI编程(二)——C语言的基本数据类型,输出函数,输入函数


    目录(?)[+]

    在学习C语言数据类型之前,我们先来回顾一下Java中的基本数据类型和其特点

    一:基本数据类型

    1.在Java中有八大基本数据类型和一个引用数据(String)类型如下:

    byte      1字节  
    char      2字节  
    short     2字节  
    int       4字节  
    float     4字节  
    long      8字节  
    double    8字节  
    boolean   

    2.那在C语言中又有哪些类型呢?我们可以来看一下

    int        4字节
    char       1字节
    float      4字节
    double     8字节
    long       4字节
    short      2字节
    signed     4字节
    unsigned   4字节
    void       1字节

    3.C语言为我们提供了一个函数可以直接用来计算类型的长度,这样想知道一个类型的长度就非常方便了

    //计算类型的长度:sizeof(类型)返回一个长度为int型
    main() {
        //计算类型所占的长度
        printf("int类型所占的字节:%d
    ",sizeof(int));
        printf("char类型所占的字节:%d
    ",sizeof(char));
        printf("float类型所占的字节:%d
    ",sizeof(float));
        printf("double类型所占的字节:%d
    ",sizeof(double));
        printf("long类型所占的字节:%d
    ",sizeof(long));
        printf("short类型所占的字节:%d
    ",sizeof(short));
        printf("signed类型所占的字节:%d
    ",sizeof(signed));
        printf("unsigned类型所占的字节:%d
    ",sizeof(unsigned));
        printf("void类型所占的字节:%d
    ",sizeof(void));
    }

    4.细心的你可能会发现怎么少了个boolean类型呢?那该要怎么做判断呢!原来C语言使用的是非零和0来表示true和false。

        //C语言中boolean类型,0表示为false,非零表示true
        if(0) {
            printf("false
    ");
        } else {
            printf("true
    ");
        }

    5.Java基本数据类型和C语言的一些区别:

    1. java中char类型的长度为2个字节,C语言中的长度为1个字节
    2. java中long类型的长度为8个字节,C语言中的长度为4个字节(C99(99年制定的表准)标准规定:long类型的规定,不小于整形)
    3. C语言中没有byte
    4. C语言中boolean类型,0表示为false,非零表示true
    5. singed:有符号范围:-128 ~ 127–>(-2^7 ~ 2^7-1)
    6. unsinged:无符号范围:0 ~ 255 –>(0 ~ 2^8-1)
    7. void:无类型,代表任意类型
    8. C语言中没有String类型,但是可以用char数组来表示

    二:输出函数

    1.输出函数就简单多了。比java的System.out.println()还要少几个代码

    printf("内容");
    //如果需要换行我们只需要添加换行符就行了
    printf("
    ","内容");

    2.写一个简单的输出语句

    main() {
        char c = 'a';
        printf("c==
    ",c);
        //使docs窗口停留
        system("pause");
    }

    这里写图片描述

    为什么没有输出我们的a呢?原来C语言中对输出内容需要使用到占位符,那我们加个占位符来试下

    main() {
        char c = 'a';
        printf("c==%c
    ",c);
        //使docs窗口停留
        system("pause");
    }

    这里写图片描述

    现在终于可以输出来了,那接下来就说一说占位符这个鬼东西。

    • int–>%d
    • long int–>%ld
    • char–>%c
    • float–>%f
    • 短整形(short)–>%hd
    • double–>%lf
    • 十六进制输出–>%#x
    • 无符号(unsigned)–>%u
    • 字符串–>%s
    • 八进制–>%o

    不同的类型要用不同的占位符去输出,否则会精度丢失。

    3.现在我们来定义一些变量并对其输出

    main() {
        char c = 'a';
        int i = 12345678;
        long l = 526247678;
        float f = 3.1415;
        double d = 3.1415926535;
        //后面分析,为什么要这样写
        char* str="我是一个字符串";
    
        printf("c==%c
    ",c);
        printf("i==%d
    ",i);
        printf("l==%ld
    ",l);
        printf("f==%f
    ",f);
        printf("d==%lf
    ",d);
        printf("str==%s
    ",str);
    
        //使docs窗口停留
        system("pause");
    }

    这里写图片描述

    咦~,输出的 f 后面怎么多了两个0呢?在C语言中默认保留小数点后六位,要想保留对应的位数,就需要在%后边加上” .保留位数”如下代码:

    printf("f==%.4f
    ",f);//效果就是f==3.1415,图就不贴了

    三:输入函数

    1.输入函数介绍

    scanf("占位符",内存地址);

    2.写一个简单的输入函数,从控制台输入一个数字并将其打印在控制台上

    int i;
    printf("亲!请输入一个数字:
    ");
    //&i,就是取i的地址,也就是把从控制台接收到的数据赋值给i。
    scanf("%d",&i);
    printf("输入的数字为:%d
    ",i);

    这里写图片描述

    3.使用数组来表示我们的字符串、使用for循环打印数组内容

        //定义一个数组[]必需在数组名右边 
        char arr[]= {'H','e','l','l','o'};
        //for循环需要将变量在外面,不能像java一样定义在里面
        int j;
        for(j=0; j<5; j++) {
            printf("arr[%d]=%c
    ",j,arr[j]);
        }
        //C语言中没有String类型,但是可以用char数组来表示
        //直接将数组输出
        printf("arr:%s
    ",arr);

    这里写图片描述

    4.我们还可以从控制台输入一个字符串

        printf("请输World:
    ");
        //声明数组和数组长度
        char arr2[5];
        //将控制台的内容赋值给arr2
        scanf("%s",&arr2);
        printf("arr2:%s
    ",arr2);

    5.在对数组进行输出的时候你会发现会多输出一些乱七八糟的东西,因为:数组是一块连续的内存空间,需要在数组最后面加上一个‘’表示结束

        char arr3[]= {'a','b','c','d','e',''};
        printf("arr3==%s
    ",arr3);

    这篇文章就先讲到这里了,接下来将继续学习C语言的指针及其他内容;学习的脚步不能停止,继续向前迈进。

  • 相关阅读:
    bean生命周期
    UI测试 错题分析
    Ajax
    Struts2数据校验
    ognl
    Struts2第一个入门案例
    《使用Hibernate开发租房系统》内部测试笔试题
    Hibernate 测试分析 好多题都是没认真看题错了。
    关于extra加强延迟加载
    加强延迟加载
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6169306.html
Copyright © 2020-2023  润新知