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

黑马程序员:c语言--指针

2014-03-26 18:17 281 查看
----------- 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>  <
12907
span style="font-family:'宋体';">定义类型的同时定义变量(省略了类型名称)

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学习型技术博客、期待与您交流! ------------

详情请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: