[TCPL]第五章 指针与数组 学习笔记

5.1 指针与地址

指针是一种保存地址的变量.是能够存放一个地址的存储单元(32位机器占4个字节,64位机器占8个字节).

p=&c;   将c的地址赋给变量p  成p是指向c的指针.  地址运算符&只能应用于内存中的对象,即变量和数组,不能用于表达式,常量,或register变量.

声明 int *p; 表明表达式*p的结果是一个int类型.

指针只能指向某种特定类型的对象,每个指针必须指向某种特定的数据类型(void类型的指针除外,可以存放指向任何类型的指针,但它不能间接引用其自身 即void *vp;   *vp是不允许的)

5.2 指针与函数参数

C函数参数是值传递,即主调函数传给被调用的函数一个副本.  因此被调用函数不能直接修改主调函数中变量的值.  要修改的话,可以用指针作参数.

5.3 指针与数组

 数组名和指针的不同.指针是一个变量,可以进行赋值 自增(p++;p=a)等操作,而数组名不是变量,类似a=p;a++;等形式的语句是非法的.   但是当把数组名传递给一个函数时,该参数是一个局部变量,因此,数组名参数必须是一个指针,也就是一个存储地址值的变量

posted on 2018-05-23 11:48  zacky  阅读(114)  评论(0)    收藏  举报

导航