JNI之C语言简单回顾
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语言简单回顾相关推荐
- c语言基础回顾 —— 其他知识点
参考:c语言基础回顾 -- 其他知识点 作者:丶PURSUING 发布时间: 2021-03-11 14:48:59 网址:https://blog.csdn.net/weixin_44742824/ ...
- 中国2017 Google 开发者大会第一天简单回顾
昨天有幸参加了中国2017 Google 开发者大会,在这第一天就收获满满,昨天太忙了,今天早晨来一起简单回顾一下,可以让没有参加的童鞋们感受一下现场的温度. 早早就来到了会议现场,外面看不出什么特别 ...
- Go语言实践[回顾]教程15--详解Go语言的基本数据类型
Go语言实践[回顾]教程15--详解Go语言的基本数据类型 布尔型(bool) 整数型(int) 浮点型(float) 复数型(complex) 字符串型(string) 字符型(byte / run ...
- Go语言实践[回顾]教程03--Go语言的编译与运行的命令行
Go语言实践[回顾]教程03--Go语言的编译与运行的命令行 Go语言是编译型静态语言 如何编译Go语言的源文件 如何执行(运行)编译后的文件 开发中如何编译后立即执行 总结 Go语言是编译型静态语言 ...
- Go语言实践[回顾]教程21--详解Go语言的空值、零值、nil
Go语言实践[回顾]教程21--详解Go语言的空值.零值.nil Go 语言中 零值.空值.nil 概念之我见 基本数据类型的零值 复合数据类型的空值 通过实例体验零值.空值 nil 的差别 nil ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
- 程序设计语言发展回顾与展望
文章转载自:计算机世界网,原文链接地址:http://www2.ccw.com.cn/1995/13/138106.shtml 编者按:程序设计语言是与现代计算机共同诞生.共同发展的,至今已有40余年 ...
- c语言 简单编程题,c语言简单编程练习题.doc
c语言简单编程练习题 精品文档 2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1 c语言简单编程练习题 然后输出相应的字符. #include #inc ...
- 主流WEB开发语言简单对比(转)
主流WEB开发语言简单对比 原文链接:http://www.uml.org.cn/site/201401091.asp 随着时间的飞逝,随着岁月的流失.从世界上第一台计算机ENIAC诞生至今,已 ...
最新文章
- debian10 apache2使用ssl
- 微型计算机实验代码,上师大,微型计算机实验全代码.doc
- 手把手教你搭建一个基于Java的分布式爬虫系统
- Nodejs入门【转载】保留备用
- Arrays.asList 使用细节
- [转]hadoop新手错误解决方法
- Python3中异常处理和try/except,try/finally的用法
- Python机器学习:SVM003Soft Margin和SVM(线性)的正则化
- 【报告分享】清华大学126页PPT:2020-2021年元宇宙发展研究报告.pdf(附下载链接)...
- 01.最简单的helloworld
- 乱七八糟 Nodejs 系列一:试水
- php 5.4中php-fpm 的重启、终止操作命令
- PMP考试提分必刷题
- 我的世界服务器修改种子,《我的世界》服务器种子代码大全 最新种子代码分享...
- Misc 自动拼图 CTF
- js实现连续英文字符自动换行
- python学习之路1
- java 读写文件乱码_Java 解决读写本地文件中文乱码的问题
- 13-hive的执行过程
- centos7网络时间同步