c中没有Boolean类型的值,一般是使用1表示true,0表示false,c中也没有String类型的数据,c中的字符串要通过char数组来表示。c中没有byte类型,一般用char表示byte类型。

先看看c中数据类型长度:

# include<stdio.h>
# include<stdlib.h>
main(){
printf("char类型的长度为:%d\n",sizeof(char));
printf("int类型的长度为:%d\n",sizeof(int));
printf("double类型的长度为:%d\n",sizeof(double));
printf("float类型的长度为:%d\n",sizeof(float));
printf("long类型的长度为:%d\n",sizeof(long));
printf("short类型的长度为:%d\n",sizeof(short));
printf("signed int类型的长度为:%d\n",sizeof(signed int));
printf("unsigned int类型的长度为:%d\n",sizeof(unsigned int));
system("pause");
}

signed和unsigned 表示数据类型的修饰符,它们只能修饰整数类型的数据。

再来看看c中的输入输出:

# include<stdio.h>
# include<stdlib.h>
main(){
int i = 3;
float f = 3.14159;
double d = 6.2815;
char c = 'A';
short s = 2;
printf("int i=%d\n",i);
printf("float f=%f\n",f);
printf("double d=%lf\n",d);
printf("char c=%c\n",c);
printf("short s=%d\n",s);
//从键盘接受一个字符串
char arr[20];
scanf("%s",arr);
printf("arr为%s\n",arr); int j;
scanf("%d",&j);
printf("j=%d\n",j);
system("pause");
}

指针:

*的几种含义:

1.*放在某种数据类型的后面,代表就是这种数据类型的指针

2.* 代表一个乘法符号

3.* 放在一个指针变量前面代表这个指针变量所存放的地址对应的数据。

# include<stdio.h>
# include<stdlib.h>
main(){
int i = 5;
int* p = &i;
printf("%d\n",*p);
system("pause");
}

运行结果:

由上图可以看出,p和i是两个完全不相同的变量,p的改变不会影响i,i的改变也不会影响p;但是*p和i则是同一个值,更改*p会影响i,同理,更改i也会影响*p.

通过子函数来修改主函数中变量的值。

# include<stdio.h>
# include<stdlib.h> void swap(int* p,int* q){
int temp = *p;
*p = *q;
*q = temp;
}
main(){
int i = 5;
int j = 3;
printf("修改之前的变量值\ni=%d\nj=%d\n",i,j);
swap(&i,&j);
printf("修改之后的变量值\ni=%d\nj=%d\n",i,j);
system("pause");
}

把i和j对应的地址传递给swap函数,*p和*q分别代表变量i和j的地址所对应的变量值,在swap函数中,通过直接操作变量的地址所对应的变量值来交换两个变量之间的值。

指针变量常见错误:

1.指针变量未赋值(野指针)不可使用

2.不相符合的指针类型不可互传。比如以下代码错误:

int i = 9;
char* c;
printf("%c\n",*c);

指针不可以访问被系统回收的变量,子函数调用完毕之后,函数体内的所有局部变量会被系统回收。

数组中arr[i] 、*(arr+i)表示同一个变量。数组是一块连续的内存空间,数组名是首地址。

JNI 学习笔记系列(二)的更多相关文章

  1. JNI 学习笔记系列(一)

    JNI全称是Java native interface,它是一个中间件,通过JNI可以使Java和C语言之间互相调用,在android开发中,像wifi热点的开启,像极品飞车中重力加速,碰撞效果的模拟 ...

  2. Windows-universal-samples学习笔记系列二:Controls, layout, and text

    Controls, layout, and text AutoSuggestBox migration Clipboard Commanding Context menu Context menu ( ...

  3. 步步为营 SharePoint 开发学习笔记系列总结

    转:http://www.cnblogs.com/springyangwc/archive/2011/08/03/2126763.html 概要 为时20多天的sharepoint开发学习笔记系列终于 ...

  4. WebService学习笔记系列(二)

    soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...

  5. Dynamic CRM 2013学习笔记 系列汇总

    这里列出所有 Dynamic CRM 2013学习笔记 系列文章,方便大家查阅.有任何建议.意见.需要,欢迎大家提交评论一起讨论. 本文原文地址: Dynamic CRM 2013学习笔记 系列汇总 ...

  6. C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)

    上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yunfeifei/p/392 ...

  7. SQLServer学习笔记系列3

    一.写在前面的话 今天又是双休啦!生活依然再继续,当你停下来的时候,或许会突然显得不自在.有时候,看到一种东西,你会发现原来在这个社会上,优秀的人很多,默默 吃苦努力奋斗的人也多!星期五早上按时上班, ...

  8. SQLServer学习笔记系列2

    一.写在前面的话 继上一次SQLServer学习笔记系列1http://www.cnblogs.com/liupeng61624/p/4354983.html以后,继续学习Sqlserver,一步一步 ...

  9. Dynamic CRM 2013学习笔记(二)插件基本用法及调试

      插件是可与 Microsoft Dynamics CRM 2013 和 Microsoft Dynamics CRM Online 集成的自定义业务逻辑(代码),用于修改或增加平台的标准行为.也可 ...

随机推荐

  1. MyBatis学习总结1

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  2. Rabin-Miller算法

    首先附上matrix67大神的讲解: --------------------------------------------------------------------------------- ...

  3. 删除一个目录和其各级子目录下的.svn文件

    两种方法[1]用find命令和其action来实现[2]用rm直接实现$ cd /tmp/xxx$ rm -rf  `find . -name .svn`就可以实现了. 删除SVN目录及从服务器端删除 ...

  4. HW3.18

    import javax.swing.JOptionPane; public class Solution { public static void main(String[] args) { Str ...

  5. 计蒜客 取数游戏(dp)

    有如下一个双人游戏:N个正整数的序列放在一个游戏平台上,两人轮流从序列的两端取数,每次有数字被一个玩家取走后,这个数字被从序列中去掉并累加到取走该数的玩家的得分中,当数取尽时,游戏结束.以最终得分多者 ...

  6. Web Services and C# Enums -摘自网络

    Web Service Transparency .NET support for web services is excellent in creating illusion of transpar ...

  7. sudo 和 sudoers设置

    转: http://www.cnblogs.com/zhuowei/archive/2009/04/13/1435190.html sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许 ...

  8. openstack 制作大于2TB根分区自动扩容的CENTOS镜像

    制作镜像的时候默认分的是30G空间 qemu-img create -f raw centos.img 30G 看官网文档安装完系统需要安装cloud-init和clout-utils包,本人安装了完 ...

  9. Yii Active Record 查询结果转化成数组

    使用Yii 的Active Record 来获取查询结果的时候,返回的结果集是一个对象类型的,有时候为了数据处理的方便希望能够转成数组返回.比如下面的方法: // 查找满足指定条件的结果中的第一行 $ ...

  10. 【python自动化第九篇:进程,线程,协程】

    简要: paramiko模块 进程与线程 python GIL全局解释器锁 一.PARAMIKO模块 实现远程ssh执行命令 #!/usr/bin/env python # -*- coding:ut ...