前言:作为一个安卓程序员,如果不懂C/C++开发,那么安卓jni、NDK、视频解码、音频解码也没法开发,有需求我们就要学习,加油吧!今天开始我们快速讲解C语言,有java基础的人适合看本博客。
----------分割线--------
推荐开发工具VS2013。
---------分割线---------
1.HelloWord:
//引入头文件
//只有函数的声明,编译时会去找函数的实现
#include<stdio.h>
void main(){
printf("hello world\n");
system("pause");
}
显示:
2.基本数据类型。
int %d
short %d
long %ld
float %f
double %lf
char %c
%x 十六进制
%o 八进制
%s 字符串
void main(){
int i = 1;
printf("%d\n",i);
float f = 23.3;
printf("%f\n",f);
//基本数据类型所占的字符节
printf("int占%d字节\n",sizeof(int));
printf("char占%d字节\n",sizeof(char));
printf("float占%d字节\n",sizeof(float));
//循环
int n = 0;
for (n; n < 10; n++){
printf("%d\n", n);
}
//等待输入
system("pause");
}
运行显示:
3.输入输出函数:
void main(){
int i;
printf("请输入一个整数:");
//赋值
scanf("%d",&i);//控制台输入,&取地址符
//打印
printf("i的值是%d\n",i);
system("pause");
}
注意:在vs2013中直接使用scanf是提示不安全的,所以我们需要在头文件上添加一个宏定义:
#define _CRT_SECURE_NO_WARNINGS
运行显示:
4.指针:
指针存储的是变量的内存地址
内存地址,系统给数据分配的编号(门牌号)
注意:内存地址是计算机随机分配的,不是固定的。
void main(){
int i = 90;
//指针变量,创建一个int类型的指针
int* p = &i;//p的值就是i这个变量的内存地址
printf("%#x\n",p);
float f = 89.5f;
//创建一个float类型的指针
float* fp = &f;
printf("%#x\n",fp);
system("pause");
}
运行显示:
5.利用指针和函数更改变量的值
void change(int* p){
*p = 300;
}
//变量名,对内存空间上的一段数据的抽象
void main(){
int i = 90;
//i = 89;
//创建一个int类型的指针
int *p = &i;
//输出地址
printf("p的地址:%#x\n",&p);
printf("i的地址:%#x\n",&i);
printf("i的值:%d\n",i);
//间接赋值 i = 200
//对p存的地址指向的变量进行操作
//*p = 200;
change(&i);
printf("i的值:%d\n", i);
system("pause");
}
运行显示:
6.了解Sleep函数。
需要引入头文件:
#include<Windows.h>
代码:
void main(){
int time = 600;
printf("time:%#x\n",&time);
while (time>0)
{
time--;
printf("剩余的时间%d秒\n",time);
//睡眠
Sleep(1000);
}
system("pause");
}
运行显示:
----------完-----