----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
概述:
1. 指针的作用:能够根据一个地址值,访问对应的存储空间。
2. int *p int的作用是表示 指针*p所访问的地址只能存储整型变量,如果变量类型变为double 则访问的的地址只能储存双精度浮点型变量
3. int *p 与 *p 这两个*的含义是不一样的,前一个*的含义是定义的这个变量是代表一个指针,后面的*是访问P指向存储空间。
指针使用注意:
1. int *p 只能指向int 类型的数据
2. int *P;p = 200; 这种写法不对,因为指针变量只能存储地址
3. int *p ;printf(”%d\n”, *p); 指针变量没有经过初始化之前,不要拿来间接访问其他存储空间。
4. 64位编译器下,任何一种类型的指针都是占8个字节的存储空间
变量类型
1.局部变量:在函数(代码块)内部定义的变量
1>作用域:从定义变量的那一行开始,一直到代码块结束
2>生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收
3>没有固定的初始值
2.全局变量:在函数外面定义的变量
1>作用域:从定义变量的那一行开始,一直到文件结尾
2>生命周期:程序一启动就会分配内存,程序退出时才会被销毁
3>默认的初始值就是0
结构体
1. 构造类型:由多个基本数据类型组成
2. 数组:只能由多个相同类型的数据构成
结构体:可以由多个不同类型的数据构成
3. 定义结构体变量的3种方式
1> 先定义类型,再定义变量(分开定义)
struct student
{
int age;
};
struct student stu;
2> 定义类型的同时定义变量
struct student
{
int age;
}stu;
struct student stu2;
3> 定义类型的同时定义变量(省略了类型名称)
struct
{
int age;
}stu;
结构体作用范围
1.结构体类型也有作用域,从定义类型的那一行开始,直到代码块结束
结构体指针
1. 指向结构体的指针的定义
struct student *p;
2. 利用指针访问结构体的成员
1> (*p). 成员名称
2> p->成员名称
数据类型总结:
一、 基本数据类型
1. int
1> long int 、int : 8个字节 %ld
2> shot int 、shot: 2个字节 %d
3> unsigned int、unsigned: 4个字节 %zd
4> signed int、signed、int: 4 个字节 %i %d
2. float\double
1> float: 4个字节 %f
2> double: 8个字节 %f
3. char
1> 1个字节 %c %d
2> char 类型保存在内存中的是它的ASCII值 ‘A’-à65
二、 构造类型
1. 数组
1> 只能由同一种类型的数据组成
2> 定义:数据类型 数据名 [元素个数]
2. 结构体
1> 可以由不同类型的数据组成
三、 指针类型
1. 变量的定义
int *p
3. 间接操作变量的值
int a = 10;
p = &a;
*p =20;
四、 枚举类型
1. 使用场合:当一个变量只允许有几个固定取值时
预处理指令:
1. 所有的预处理指令都是以#开头
2. 预处理指令分3种
1> 宏定义
2> 条件编译
3> 文件包含
3. 预处理指令在代码翻译成0和1之前执行
4. 预处理的位置是可以随便写的
5.预处理指令的作用域:从编写指令的那一行开始,一直到文件结束
#define COUNT
5. #undef COUNT :从这行开始,COUNT这个宏就失效
6. 宏名一般用大写或者以k开头,为了和变量名区分。规范书写
#define kCount 4
7. 带参数的宏命令:
1> 参数的正确写法:#define pingfang(a) ((a)*(a))
宏与函数相比,运行的效率更高
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
详情请查看: