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

于今腐草无萤火,终古垂杨有暮鸦。这篇文章主要讲述Android JNI编程——C语言的基本数据类型,输出函数,输入函数相关的知识,希望能为你提供帮助。
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/。
目录(?)[+]
在学习C语言数据类型之前,我们先来回顾一下java中的基本数据类型和其特点 一:基本数据类型 1.在Java中有八大基本数据类型和一个引用数据(String)类型如下:

byte1字节 char2字节 short2字节 int4字节 float4字节 long8字节 double8字节 boolean

2.那在C语言中又有哪些类型呢?我们可以来看一下
int4字节 char1字节 float4字节 double8字节 long4字节 short2字节 signed4字节 unsigned4字节 void1字节

3.C语言为我们提供了一个函数可以直接用来计算类型的长度,这样想知道一个类型的长度就非常方便了
//计算类型的长度:sizeof(类型)返回一个长度为int型 main() { //计算类型所占的长度 printf("int类型所占的字节:%d\n",sizeof(int)); printf("char类型所占的字节:%d\n",sizeof(char)); printf("float类型所占的字节:%d\n",sizeof(float)); printf("double类型所占的字节:%d\n",sizeof(double)); printf("long类型所占的字节:%d\n",sizeof(long)); printf("short类型所占的字节:%d\n",sizeof(short)); printf("signed类型所占的字节:%d\n",sizeof(signed)); printf("unsigned类型所占的字节:%d\n",sizeof(unsigned)); printf("void类型所占的字节:%d\n",sizeof(void)); }

4.细心的你可能会发现怎么少了个boolean类型呢?那该要怎么做判断呢!原来C语言使用的是非零和0来表示true和false。
//C语言中boolean类型,0表示为false,非零表示true if(0) { printf("false\n"); } else { printf("true\n"); }

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("\n","内容");

2.写一个简单的输出语句
main() { char c = ‘a‘; printf("c==\n",c); //使docs窗口停留 system("pause"); }

【Android JNI编程——C语言的基本数据类型,输出函数,输入函数】
Android JNI编程——C语言的基本数据类型,输出函数,输入函数

文章图片

为什么没有输出我们的a呢?原来C语言中对输出内容需要使用到占位符,那我们加个占位符来试下
main() { char c = ‘a‘; printf("c==%c\n",c); //使docs窗口停留 system("pause"); }

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

文章图片

现在终于可以输出来了,那接下来就说一说占位符这个鬼东西。
  • 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\n",c); printf("i==%d\n",i); printf("l==%ld\n",l); printf("f==%f\n",f); printf("d==%lf\n",d); printf("str==%s\n",str); //使docs窗口停留 system("pause"); }

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

文章图片

咦~,输出的 f 后面怎么多了两个0呢?在C语言中默认保留小数点后六位,要想保留对应的位数,就需要在%后边加上” .保留位数”如下代码:
printf("f==%.4f\n",f); //效果就是f==3.1415,图就不贴了

三:输入函数 1.输入函数介绍
scanf("占位符",内存地址);

2.写一个简单的输入函数,从控制台输入一个数字并将其打印在控制台上
int i; printf("亲!请输入一个数字:\n"); //& i,就是取i的地址,也就是把从控制台接收到的数据赋值给i。 scanf("%d",& i); printf("输入的数字为:%d\n",i);

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

文章图片

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

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

文章图片

4.我们还可以从控制台输入一个字符串
printf("请输World:\n"); //声明数组和数组长度 char arr2[5]; //将控制台的内容赋值给arr2 scanf("%s",& arr2); printf("arr2:%s\n",arr2);

5.在对数组进行输出的时候你会发现会多输出一些乱七八糟的东西,因为:数组是一块连续的内存空间,需要在数组最后面加上一个‘\0’表示结束
char arr3[]= {‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘\0‘}; printf("arr3==%s\n",arr3);

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

    推荐阅读