您的位置:首页 > 编程语言 > C语言/C++

NDK开发系列之第二课C语言的基本语法与指针

2016-10-13 14:36 155 查看
NDK开发系列之第二课C语言的基本语法与指针

学习NDK开发需要了解一些C语言方面的知识

1.c语言常用的库
1.1#include <stdio.h>标准函数库
1.2#include <stdlib.h> 标准函数库
1.3#include <Windows.h>windows系统库

2.c语言一些基本函数
2.1printf("hello world!");输出函数
2.2system("pause");这是一个命令(在window里面特有的)停住,暂停
2.3scanf_s("%d", &i);输入函数

3.基本数据类型
3.1基本数据类型(int char float double long int short)
3.2基本数据类型的占位符
%d  -  int
%ld -
long
%c  - char
%f -  float
%u – 无符号数
%hd – 短整型
%lf – double
%x – 十六进制输出 int 或者long int 或者short int
%o -  八进制输出
3.3案例演示
void main(){
int i = 28;
char c = 'D';
float f = 12.56;
double d = 99.999;
long l = 3544546;
short s = 50;
//控制台输出数据,需要使用占位符
//int->%d
printf("输出int类型的值:%d\n",i);
//char->%c
printf("输出char类型的值:%c\n", c);
//float->%f
printf("输出float类型的值:%f\n", f);
//long int->%ld
printf("输出long类型的值:%ld\n", l);
//double(类似于long float)->%lf
printf("输出double类型的值:%lf\n", d);
//short->%x
printf("输出short类型的值:%x\n", s);
system("pause");

}
3.4输入输出函数演示
void main(){
//注意:i
int i = 100;
//输出函数
printf("请输入一个整数:");
//输入函数(注意:输入函数赋值需要的是地址,而不是值)
//scanf("%d",&i);
//注意:不同编译工具,对函数支持不一样
scanf_s("%d", &i);
//打印i的值
printf("赋值之后的i的值:%d",i);
system("pause");

}
3.5取地址,并且根据地址取值
void main(){
int i = 100;
//输出i的值
printf("i的值:%d\n",i);

//输出i的地址
//&i:取出i变量的地址
//注意:输出地址,占位符%p
printf("i的地址:%p\n",&i);

//根据地址获取值:*(&i)
//总结:&表示取地址  *表示根据地址取值
printf("根据i的地址取出i的值%d\n",*(&i));

//什么是变量名:就是对内存的一段空间里的数据的抽象
//0x001CFDD0

//暂停
getchar();

}
3.6指针存储内容
void main(){
int i = 99;
//打印i的值
printf("%d\n",i);
//打印i的地址
printf("%p\n", &i);

//定义一个指针变量
//int* 是一个int类型的指针变量,可以存储一个int类型的变量地址
int* p = &i;
printf("指针变量p的值:%p\n",p);

//输出指针的地址
printf("指针变量p的地址:%p", &p);

//思考:以下代码输出的内容
//*代表取值  &取地址
printf("%d\n",*p); 

//直接赋值
i = 200;
printf("变量i的值:%d\n", i);
//间接赋值(通过指针变量)
*p = 500;
printf("指针变量赋值后的i的值:%d\n", i);

getchar();

}
3.7指针为什么有类型
因为指针存储的是一个内存地址,然而我们只根据一个地址读取对应的数据,
但是你不知道什么时候读取完毕,也就导致了数据丢失,
所以我们需要指定指针类型,确定什么时候读取完毕
例如:char 2字节 16位   int 4字节 32位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: