c_lang_Reference_040820_01

原创 2004年08月20日 15:24:00

文字来源 VC世界--C语言教室

自我存档,也献给和我一样的DElphi程序员

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是一个函数指针变量,该函数返回的一个指针值又指向一个指针数组,该指针数组的元素指向整型量。

java.lang.ref.Reference源代码分析

java.lang.ref.Reference源代码分析
  • u012998254
  • u012998254
  • 2017年08月03日 11:49
  • 77

Caused by: java.lang.AssertionError: illegal type variable reference 解决办法

07-24 10:54:13.529: E/AndroidRuntime(12130): FATAL EXCEPTION: AsyncTask #3 07-24 10:54:13.529: E/And...
  • Bobbybear
  • Bobbybear
  • 2013年08月13日 18:14
  • 3497

php_lang_ref:Language Reference >> References Explained >> What References Do

  • alexander_phper
  • alexander_phper
  • 2017年07月16日 18:54
  • 160

php_lang_ref:Language Reference >> Generators >> Generator syntax

  • alexander_phper
  • alexander_phper
  • 2017年07月16日 16:43
  • 328

java.lang.ref.Reference

Java代码  Reference提供了一些引用的基本方法以及静态代码块最高优先级启动ReferenceHandler线程  Reference提供了一些引用的基本方法以及静态代码块最高优先级启动Re...
  • huxin1
  • huxin1
  • 2011年04月03日 00:30
  • 2932

c lang install

  • 2009年02月18日 12:01
  • 23KB
  • 下载

01 java.lang.Object

Object 2015.01.14 ...
  • u011039332
  • u011039332
  • 2015年08月18日 21:13
  • 250

java源码阅读-java.lang.String(01)

Java源码阅读 前言String 类为字符串,是Java总常用类之一。public final class String{...}String 类被final修饰:表示该类不能被继承、其中所有方法隐...
  • lxp3360
  • lxp3360
  • 2017年07月25日 16:09
  • 113

notepad++ 查找引用(Find Reference)(适用于c c++及各类脚本比如lua、python等)

在程序开发过程中,程序员经常用到的一个功能就是查找引用(Find Reference),Visual Studio里面的对应功能是“查找所有引用”(Find All References)。在使用no...
  • o_oxo_o
  • o_oxo_o
  • 2015年07月04日 17:00
  • 5293

Glib交叉编译:g__cancellable_lock undeclared!&HEADER/C_IN undeclared!&undefined reference to "localeconv"

编译过程遇到了诸多问题,记录下来以便后续参考: /libtool: eval: line 964: syntax error near unexpected token `|’: ...
  • dadoneo
  • dadoneo
  • 2012年11月19日 14:06
  • 4242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c_lang_Reference_040820_01
举报原因:
原因补充:

(最多只允许输入30个字)