六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 25|回复: 0

C数组与指针

[复制链接]

升级  6.67%

14

主题

14

主题

14

主题

秀才

Rank: 2

积分
60
 楼主| 发表于 2013-1-26 12:26:43 | 显示全部楼层 |阅读模式
指针说白了就是地址.
指针变量就是用来存放指针(地址)的变量。

两个有关的运算符:

&  取地址运算符     &a 就代表变量a的地址

*  指针运算符     *a 就代表变量a的值

C语言规定,数组存储空间的首地址存放在数组名中,即数组名指向下标为0的数组元素。
由此可知数组名不仅是一个标识名字,它本身又是个地址量。由于数组的存储位置是系统分配的
,用户不能任意改变位置,所以,表示数组存储起始位置的数组名是个地址常量。另外,数组中的
每个元素都有地址,其表示形式为:&数组名[下标],其值也是地址常量。
如:数组a的首地址为a或&a[0],数组元素a[3]的地址为&a[3].
1.指向一维数组元素的指针变量
int *p;
定义p为指向整型变量的指针变量,若有下面赋值语句:
p = &a[3];
则把元素a[3]的地址赋给指针变量p。
可以在定义指针变量的同时,把数组元素的地址初始化给指针变量.例如:
int a[10],*p=a;
它等价于:
int a[10],*p;
p=a;
其作用是把数组a的起始地址,即a[0]的地址赋给指针变量p。
需要注意到是:指针变量的类型必须与它指向的数组元素的类型一致.


定  义含   义
Int I;定义一个整型变量I
Int *p;P为指向整型数据的指针变量
Int a[n];定义整型数组a,它有n个元素
Int *p[n];定义指针数组p,它有n个指向整型的指针元素
Int (*p)[n];P为指向含有n个元素的一维数组的指针变量
Int f();F为返回整型值的函数
Int *p();P为返回值为指针的函数,该指针指向整型数据
Int (*p)();P为指向函数的指针,该函数返回一个整型值
Int **p;定义一个指向指针的指针变量
---------------------------------------------------------------------------------
const char*和char* const
指向常量的指针
指针常量

1.指向常量的指针
对一个利用const char*类型定义的常量指针来说,不能修改其指向的内存中的内容,但可以
修改其所指向的内存地址。

2.指针常量
指针值不可修改
指向的内容可以修改

const char*类型的指针(指向常量的指针)其所指向的内容是常量,是不可以修改的,但其指针值是可以修改的。但对于char* const类型的指针(常量指针)来说,它的地址是一个常量,也就是说,它的指针值是常量,不可以修改,但其指向的内容是可以修改的。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表