vlambda博客
学习文章列表

C语言二级--第八章指针

点击上方“蓝字”,关注我。


在C语言中,将地址形象地称为“指针”。一个变量的地址称为变量的“指针”。一个专门用来存放另一个变量的地址的变量(即指针),则称它为“指针变量”。


1. 指针变量的定义


定义指针变量的一般形式: 类型名 *指针变量名, * 指针变量名 2 ...

例如:int *p,*t;


2. 指针变量的引用


指针变量中只能存放地址(指针),与指针相关的两个运算符是“&”(取地址运算)和“*”(指针运算)。


3. 指针变量作为函数参数


  • 指针类型数据可以作为函数参数来进行传递。




【考点31】数组与指针


1.指向数组元素的指针


C语言规定数组名代表数组的首地址,也就是数组中第0号元素的地址。
定义指向数组元素的指针变量的方法,也定义指向变量的指针变量相同。


2.通过指针引用数组元素


如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。


3. 用数组名作为函数参数


但数组名作为参数被传递时,若形参数组中各元素发生了变化,则原实参数组各元素的值也随之变化。

如果用数组元素作为实参,情况就与变量作为参数时一样,时“值传递”方式。


4. 指向多维数组的指针和变量变量


多维数组可以看做是一维数组的延伸,多维数组的内存单元也是连续的内存单元。C语言实际上是把多维数组当成一维数组来处理的。



【考点32】字符串与指针


  • 用字符数组存放一个字符串,然后输出该字符串。

  • 用字符串指针指向一个字符串。用字符指针指向字符串中的字符。




2. 字符串指针作为函数参数


将一个字符串从一个函数传递到另一个函数,可以用地址传递的方法,即用字符数组名作为参数或用指向字符串的指针变量作为参数,进行传递。



3. 字符指针变量和字符数组的区别

  • 赋值方式不同。

  • 字符数组可以定义时对其整体赋初值,但在赋值语句中不能整体赋值。而字符指针变量即可以在定义时赋初值,也可以在赋值语句中完成。

  • 编译时不同

【考点33】指向函数的指针


指针变量可以指向一个函数,编译时,一个函数将被分配给一个入口地址,这个入口地址就称为该函数的指针。因此,可以通过使用一个指向函数的指针变量调用此函数。


说明:
指向函数的指针变量的一般定义形式为数据类型(*指针变量名)();
在给函数指针变量赋值时,只需给出函数名而不必给出参数。
用函数指针变量调用函数时,只需将(*s)代替函数名即可(s为已经定义过的指向函数的指针变量名),在(*s)之后的括号中根据需要写上实参。
对指向函数的指针变量,有些运算,如++s、--ss++等都是没有意义的。


【考点34】指针数组和指向指针的指针


1.指针数组的概念


若在一个数组中,其数组均为指针类型数据,这样的数组称为指针数组。
一般指针数组的定义形式为 类型名 *数组名[数组长度];



2.指向指针的指针


指向指针数据的指针变量,简称为指向指针的指针,通常称为二级指针。

定义一个指向指针变量,简称为指向指针的指针,通常称为二级指针。

定义一个指向指针数据的指针变量的形式:类型名 **a;
A:

作者有话说


O:

此次更新的是第八章!考试加油!                                                     


 



参考资料:

上机考试试题库二级C