JNI之C语言简单回顾
一.C语言基本数据类型:
 c语言中  char, int, float, double, signed, unsigned, long, short and void
// java 中的8大本数据类型和他们的长度
// byte 1 char 2 short 2 int 4 long  8 double  8 float 4 boolean 1

// 在c99标准的c语言.没有 byte 类型 没有boolean 类型
// 在c语言里面 0表示的是假 非0表示的是真
// sizeof(); 获取某种数据类型的长度 , 接受一个参数(数据类型)

// c语言中的char类型是1个字节  java里面char是两个字节
// c语言中的char的长度 和 java中的byte的长度相同 ,所以可以用 c 语言中的char类型 表示 java中的byte类型
// c语言中的int 和 java中的int在内存中的长度相同 所以java的int 和c语言中的int 可以互相代替使用.
 
// c语言中long类型是4个字节 java中的long类型是8个字节

二. C 语言的输入函数      
//scanf();
// java 语言里面有一个数据类型 叫String 字符串
// c语言里面 是没有String类型
// c语言表示一个字符串  定义一个字符的数组
// 利用scanf %s 的方式 可以方便的从键盘获取一个字符串

三。 指针入门:
// 指针代表的就是一个内存地址. 内存地址 可以用一个指针来表示.
// 地址就是一块内存空间的编号,通过这个编号 我们可以使用以一块内存空间.

// 指针变量:  可以存放指针类型(内存地址数据)数据的变量 指针变量.
          // 使用* 来表示指针变量.
          // int*  代表的就是一个表示int类型数据地址的变量
      
补充*号的几种作用.
       // 3*5  1.*号的第一种作用 代表的是相乘的操作.
       //        2.在一个数据类型的后面 跟上一个*号 代表就是这种数据类型的指针变量
       //        3. 在一个指针变量前面加上一个*号 代表的是 访问这个指针变量里面存放的地址里面存储的内容.       
函数指针
int (*pf) ( int x, int y); // 定义一个函数的指针 这个函数 返回值为int 接受两个int类型的参数

四.指针使用的常见错误:
指针的常见错误一:
 
 
      //指针变量的类型 要跟 存放数据的类型 必须要对应
       // int类型的变量的地址 要用int*来表示.
       // float类型变量的地址 要用float* 来表示.
       
指针的常见错误二:
         int i = 5;
       int* p ;
       printf("*p=%d\n",*p);  // 如果p变量没有进行初始化, 里面存放的是一个垃圾值 混乱值.
                               // *p 访问了一块不知道的内存  (野指针)                    
        
        // 指针变量 未经赋值 ,不能使用.
        // 如果修改一个野指针指向的内存空间,可能会出现严重的错误.

//window操作系统 提供了一些api  提升父进程的权限.

五: 指针的长度
    
//所有数据类型的指针长度 都是4个字节
       //32位的操作系统, 要想表示一个地址 2的32次方个地址.
       //指针类型的 作用主要就是在指针运算的时候 起作用. 在获取指针所指向的数据的时候 起作用.
六. 多级指针
       
七. 手动分配内存
栈内存会被系统自动回收,不能被手动回收
堆内存不会被系统自动回收,需要由程序员手动回收

八. 结构体,联合体和枚举,自定义类型
结构体:
struct Student           //此写法为最标准写法
{
    int age;  // 4
    float score; // 4
    long  id;// 4
    char c;  //  为了方便处理,也分配为4
    
    //不同的编译器 处理的结果可能 不同
} ;

三种写法:

第一种
struct Student
{
  int age;
  float score;
  char sex;
}

第二种
struct Student2
{
 int age;
 float score;
 char sex;
} st2;

第三种
struct
{
 int age;
 float score;
 char sex;
} st3

联合体
union {double d; long i; int k; char ii; } mix;

typeof给一个变量定义一个别名

JNI之C语言简单回顾相关推荐

  1. c语言基础回顾 —— 其他知识点

    参考:c语言基础回顾 -- 其他知识点 作者:丶PURSUING 发布时间: 2021-03-11 14:48:59 网址:https://blog.csdn.net/weixin_44742824/ ...

  2. 中国2017 Google 开发者大会第一天简单回顾

    昨天有幸参加了中国2017 Google 开发者大会,在这第一天就收获满满,昨天太忙了,今天早晨来一起简单回顾一下,可以让没有参加的童鞋们感受一下现场的温度. 早早就来到了会议现场,外面看不出什么特别 ...

  3. Go语言实践[回顾]教程15--详解Go语言的基本数据类型

    Go语言实践[回顾]教程15--详解Go语言的基本数据类型 布尔型(bool) 整数型(int) 浮点型(float) 复数型(complex) 字符串型(string) 字符型(byte / run ...

  4. Go语言实践[回顾]教程03--Go语言的编译与运行的命令行

    Go语言实践[回顾]教程03--Go语言的编译与运行的命令行 Go语言是编译型静态语言 如何编译Go语言的源文件 如何执行(运行)编译后的文件 开发中如何编译后立即执行 总结 Go语言是编译型静态语言 ...

  5. Go语言实践[回顾]教程21--详解Go语言的空值、零值、nil

    Go语言实践[回顾]教程21--详解Go语言的空值.零值.nil Go 语言中 零值.空值.nil 概念之我见 基本数据类型的零值 复合数据类型的空值 通过实例体验零值.空值 nil 的差别 nil ...

  6. Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器

    Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...

  7. 程序设计语言发展回顾与展望

    文章转载自:计算机世界网,原文链接地址:http://www2.ccw.com.cn/1995/13/138106.shtml 编者按:程序设计语言是与现代计算机共同诞生.共同发展的,至今已有40余年 ...

  8. c语言 简单编程题,c语言简单编程练习题.doc

    c语言简单编程练习题 精品文档 2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 c语言简单编程练习题 然后输出相应的字符. #include #inc ...

  9. 主流WEB开发语言简单对比(转)

    主流WEB开发语言简单对比  原文链接:http://www.uml.org.cn/site/201401091.asp   随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...

最新文章

  1. debian10 apache2使用ssl
  2. 微型计算机实验代码,上师大,微型计算机实验全代码.doc
  3. 手把手教你搭建一个基于Java的分布式爬虫系统
  4. Nodejs入门【转载】保留备用
  5. Arrays.asList 使用细节
  6. [转]hadoop新手错误解决方法
  7. Python3中异常处理和try/except,try/finally的用法
  8. Python机器学习:SVM003Soft Margin和SVM(线性)的正则化
  9. 【报告分享】清华大学126页PPT:2020-2021年元宇宙发展研究报告.pdf(附下载链接)...
  10. 01.最简单的helloworld
  11. 乱七八糟 Nodejs 系列一:试水
  12. php 5.4中php-fpm 的重启、终止操作命令
  13. PMP考试提分必刷题
  14. 我的世界服务器修改种子,《我的世界》服务器种子代码大全 最新种子代码分享...
  15. Misc 自动拼图 CTF
  16. js实现连续英文字符自动换行
  17. python学习之路1
  18. java 读写文件乱码_Java 解决读写本地文件中文乱码的问题
  19. 13-hive的执行过程
  20. centos7网络时间同步

热门文章

  1. 拥有一台你的轻量应用服务器Lighthouse
  2. 微服务架构系列二:密码强度评测的实现与实验
  3. 腾讯容器云平台GaiaStack亮相kubeCon
  4. Redis和Memcache区别,优缺点对比
  5. 前后端分离WebStorm自动部署到tomcat服务器
  6. ZooKeeper实战(三):ZooKeeper实现分布式配置中心、分布式锁、Reactive响应式模型
  7. 【Python Flask】SQLAlchemy增删改查总结;不重复查询某一列
  8. 【算法笔记】重刷PAT 题解合集
  9. 汇编语言 修改显存 在屏幕上显示图案
  10. java安全编码指南之:可见性和原子性