C语言 百分网手机站

C语言指针相关知识

时间:2020-09-02 19:35:13 C语言 我要投稿

C语言指针相关知识

  导语:C语言是一门非常专业的课程,下面是其中一些知识,欢迎参考!

C语言指针相关知识

  1. 指针是C语言中一个重要的组成部分,使用指针编程有以下优点:

  (1)提高程序的编译效率和执行速度。

  (2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。

  (3)可以实现动态的存储分配。

  (4)便于表示各种数据结构,编写高质量的程序。

  2. 指针的运算

  (1)取地址运算符&:求变量的地址

  (2)取内容运算符*:表示指针所指的变量

  (3)赋值运算

  ·把变量地址赋予指针变量

  ·同类型指针变量相互赋值

  ·把数组,字符串的首地址赋予指针变量

  ·把函数入口地址赋予指针变量

  (4)加减运算

  对指向数组,字符串的指针变量可以进行加减运算,如p+n,p-n,p++,p--等。对指向同一数组的两个指针变量可以相减。对指向其它类型的指针变量作加减运算是无意义的。

  (5)关系运算

  指向同一数组的两个指针变量之间可以进行大于、小于、 等于比较运算。指针可与0比较,p==0表示p为空指针。

  3. 与指针有关的各种说明和意义见下表。

  int *p;     p为指向整型量的指针变量

  int *p[n];   p为指针数组,由n个指向整型量的指针元素组成。

  int (*p)[n];  p为指向整型二维数组的指针变量,二维数组的`列数为n

  int *p()    p为返回指针值的函数,该指针指向整型量

  int (*p)()   p为指向函数的指针,该函数返回整型量

  int **p     p为一个指向另一指针的指针变量,该指针指向一个整型量。

  4. 有关指针的说明很多是由指针,数组,函数说明组合而成的。

  但并不是可以任意组合,例如数组不能由函数组成,即数组元素不能是一个函数;函数也不能返回一个数组或返回另一个函数。例如

  int a[5]();就是错误的。

  5. 关于括号

  在解释组合说明符时, 标识符右边的方括号和圆括号优先于标识符左边的“*”号,而方括号和圆括号以相同的优先级从左到右结合。但可以用圆括号改变约定的结合顺序。

  6. 阅读组合说明符的规则是“从里向外”。

  从标识符开始,先看它右边有无方括号或园括号,如有则先作出解释,再看左边有无*号。 如果在任何时候遇到了闭括号,则在继续之前必须用相同的规则处理括号内的内容。例如:

  int*(*(*a)())[10]

  ↑ ↑↑↑↑↑↑

  7 6 4 2 1 3 5

  上面给出了由内向外的阅读顺序,下面来解释它:

  (1)标识符a被说明为;

  (2)一个指针变量,它指向;

  (3)一个函数,它返回;

  (4)一个指针,该指针指向;

  (5)一个有10个元素的数组,其类型为;

  (6)指针型,它指向;

  (7)int型数据。

  因此a是一个函数指针变量,该函数返回的一个指针值又指向一个指针数组,该指针数组的元素指向整型量。


【C语言指针相关知识】相关文章:

c语言之指针基础知识10-04

C语言指针教学09-25

C语言指针和数组基础知识10-04

C语言指针的传递10-06

C语言指针的用法10-05

C语言指针用法详解09-20

C语言指针函数和函数指针详解06-10

C语言的指针类型解析10-06

C语言中的指针解读10-04

C语言数组与指针详解09-25