1、 什么是指针?
指针是内存中的地址,在C语言中,每个变量、数组、结构体都有对应的内存地址,所以,都可以通过指针指向它们,
并通过指针对它们中的数据进行操作。
2、例子1:
int a =3;
float b = 4.5 ;
char c = 'y';
变量 |
地址 |
内存用户数据区 |
a |
1000 |
3 |
b |
1001 |
4.5 |
c |
1002 |
'y' |
|
1003 |
|
例子分析:
首先,在程序上,我们是定义了一个整形变量并赋值3。
而实际上,变量a会被分配一个内存的存储空间,用于存放它的值3,而每个内存的存储空间有一个地址,
通过上面的表格,我们可以看到这个地址是1000,所以,变量a中的值就是存放在内存中地址为1000这个位置中。
而这个内存中的地址1000就是变量a的指针,或称为变量a的地址。
=======================================================================
3、定义指针变量的一般格式:
基类型 * 指针变量名
格式分析:
(1)基类型,其实就是我们前面学习变量定义时的类型,即整型int,浮点型float, 字符型char。
(2)*,星号,用于说明将要定义的变量是用于存放地址的
(3)指针变量名,其实就是变量名,命名规则与变量定义是一样的。
例子:
int *a;
float *b;
char *c;
=======================================================================
4、指针变量的赋值与引用
指针变量的赋值格式:
指针变量 = &变量;
针变量的引用格式:
* 指针变量;
分析:
&:取地址运算符,就是取出后面变量的地址,然后,通过=将地址赋给指针变量。
*:指针运算符(或称“间接访问”运算符),就是指向后面的(指针变量)的地址所指向存储单元。
例子:
int x=3; //假设x被分配的内存地址是1000
float y=4.5; //假设y被分配的内存地址是1001
char z='a'; //假设z被分配的内存地址是1002
int *a;
float *b;
char *c;
a=&x; //将变量x的地址1000赋给指针变量a,则a中的内容是1000
b=&y; //将变量y的地址1001赋给指针变量b,则b中的内容是1001
c=&z; //将变量z的地址1002赋给指针变量c,则c中的内容是1002
*a; //指向a中存放的地址,即指向内存地址1000的存储单元,而这个单元中的内容是
3,所以,结果就是3。
*b; //指向b中存放的地址,即指向内存地址1001的存储单元,而这个单元中的内容是
4.5,所以,结果就是4.5。
*c; //指向c中存放的地址,即指向内存地址1002的存储单元,而这个单元中的内容是
'a',所以,结果就是'a'。
=======================================================================
非常好,现在,我们已经掌握了C语言中的(指针)但是,如何去运行用它呢?
所以,我们就需要通过下方的链接,进入到C语言的代码训练中,然后,通过实践去加深对该知识点的理解与运用。
>>>进入学习
|