一、学习目标
1.面试
2.后期服务JNI(C语言)C JAVA 编程思想 编程能力
二、C语言和C++的区别
1.C是面向过程 C++是面向对象(移植 复用)
三、程序从写出来到—>有结果的过程
1.开发工具IDE:DevC++ Android Studio
2.创建项目 写代码
3.运行
4.结果
若不使用集成开发环境
1.写代码——文本编辑器
printf("hello world");
2.预编译—>编译器(制定规则)
gcc-E test.c -o test.i
展开
3.编译—>高级语言转化为 汇编代码
gcc-S test.i -o test.s
a.检查语法错误
b.转化为汇编代码
4.汇编—>把汇编代码转化为二进制数据
gcc -C test.s -o test.o
a.转化为目标文件
b.二进制数据出现
01010001111010
5,链接—>把所有的目标文件链接为可执行的程序
gcc -o test.o test
四、C语言基础
(1)//单行注释
(2)/* 多行注释 */
(3)include 宏 导入头文件
如果系统已经提供某些功能的实现
只需要使用include将这些功能所在的头文件导入进来就可以了
1.<系统提供的类库>
stdio.h stdlib.h math.h string.h
2."自己定义的头文件"
calculate.h
include<stdio.h>
编译器首先从系统的类库里面去查找这个头文件,
如果没有,再到自己的系统中查找,否则报错
include"stdio.h"
编译器首先从自己的系统里面去查找这个头文件,
如果没有,再到系统的类库中查找,否则报错
五、一些基础讲解和分析
include<stdio.h>
1.介绍:
main()函数=代码块=完成特定功能
所有程序的入口点都是main函数
int返回值 记录当前程序的运行状态
0:正常结束 资源自由分配
非零:1 异常结束 没收
int argc:参数个数(argument count)
char*argv[]:每个参数组成的字符串数组
2.实例:
int main(int argc,char*argv[]){
printf("%d",argc);
printf("%s",argv[0])
3.关于scanf和printf:
printf 输出语句 终端 console口
scanf 输入:终端输入
4.两种常用表达
\n 换行
\t 一个缩进
5.关于变量:
变量 -记录数据
基本数据类型—>只能存一个值
int 整型数据(%d,四个字节)
long 长整型(%ld,四个字节)
float 单精度浮点数(%f,四个字节)
double 双精度浮点数(%f,八个字节)
char 字符(%c,一个字节)
string 字符串
short 短整型(两个字节)
bool 布尔型 是、成立true;不是、不成立false(一个字节)
(占据的内存空间不一样)
6.测量变量的字节长度:
例如:
printf("%d\n",sizeof(int));//4
printf("%d\n",sizeof(long));//4
printf("%d\n",sizeof(double));//8
7.一些声明:
(1)中文占用两个字符
(2)%02d代表:不足两位的用0补齐
(3)中文占据2个字符
(4)关于字符char型的输出
(%c:字符、%d:字符对应的ASCII值)
char choose='c';
printf("%c\n",choose);
printf("%d\n",choose);
(5)“回车”其实也是字符 代表\n
(6)注意:不要在scanf里面随便写内容 写的内容就是用户输入的格式
(7)一般的基本格式:
scanf("%d",&num);
printf("%d\n",num);
8.关于一些运算符:+ - * / % && || ++ -- == = += -= !=
/:表示除法 或者 取整数部分
%:表示取余数部分
&&:"且" 两个同时成立
||:"或" 只要一个成立就可以
++:自增 a++,++a
+=: a+=2等价于a=a+2
-=:a-=2等价于a=a-2
==:判断左右是否相等
=:将右值赋予左边
两个特别的运算符(表达式):
问号表达式:x>y?'yes':'no':
例如:
char c;
if(3>1){c='yes';}
else{c='no';}
或者 c=3>1?'yes':'no'; (即问号表达式,简洁,为三目运算符)
逗号表达式:,,,
result=表达式1,表达式2,表达式3 最后一个逗号后面的值就是输出值
int temp=20;
int t2=(temp--,temp--,temp--);
printf("%d",t2);
输出值为17