1-ndk学习之c基础篇(1)
c语言其实大家并不陌生,无论是科班出身还是半路转行,都知道这是直接可以操控硬件的语言,也是一切开发语言的根本,这篇文章就主要讲述c语言环境的搭建和ndk学习必须掌握的基础知识。
c语言的开发环境我这边选择的是clion,clion和android studio几乎一样,所以学习c基础在clion上操作是很容易的,后续文章咱们会转到android studio的,至于clion的安装以及配置,可以参考这篇文章,Window10上CLion极简配置教程 - 简书(这是在网上看的别的大神的环境配置,我觉得写的很好很容易配置,因此我这边就偷懒了)
c代码的后缀名是.c,类似于java中的.java,在c语言中有头文件的概念,头文件的后缀名为.h,可以直接理解为java中的接口interface,标准情况下每个.c文件中的方法名称,都需要在对应的头文件中声明这个方法。在.c中,引用头文件有两种方式#include <stdio.h>和#include "Test.h",其中,如果是系统中的头文件,我们要用尖括号的形式,如果是我们自己写的头文件,我们要用引号的形式,如下图


在c语言中,数据类型是分为两种的,一种是有符号的(默认定义的变量,就是有符号的),另一种是无符号的。其中加unsigned的就是无符号的。


其中占位符的意思是这样,c和java的打印不一样,c的打印方式是这样的:
int age = 99;
printf("age=%d\n", age)
在printf中的第一个参数中,凡是遇到占位符的地方,打印都会动态换为后面的值,\n是换行的意思,也就是这行代码打印出来是 age=99
c可以这样定义,long long number = 46666; 其中long long ==java中的long,它是占8个字节,sizeof()方法就是获取内存占用大小数,大家可以自己练习下,写法如下。

接下来就是布尔类型,就是两句话,非0就是true,等于0就是false;非NULL就是true,等于NULL就是false;从下面的字体颜色就可以看出来

字符串的占位符是%s,字符串定义由3种方式,char* str,char * str,char *str,第三种是最标准的。数组的定义必须给定存放空间或者直接初始化

这里将会打印出"今天是11号"
遍历数组:数组是一块连续的内存空间,*可以取出内存地址里面对应的值

c语言中,声明变量,在等号左边的都是在栈中分配内存,等号右边的就是在堆中分配内存,其中,栈中分配内存系统自己分配且系统自己回收,在堆中需要动态申请内存,并且使用完毕之后要释放。

其中要使用calloc方法的话,需要引入系统头文件
#include <malloc.h> // 可以去清空 的支持
谢谢观看,有不对或者不详细的地方希望大家在评论区提出宝贵的意见。