数组与指针

数组与指针

数组下标可以确定数组元素在数组中的顺序和存储地址。由于每个数组元素相当于一个变量,因此指针变量可以指向数组中的元素,也就是说可以用指针方式访问数组中的元素。

对一个指向数组元素的指针变量的定义和赋值方法,与指针变量相同,例如:

int a[10];    /*定义a为包含10个整型数据的数组*/
int *p;        /*定义P为指向整型数据变量的指针*/
p = &a[0];    /*把a[0]元素的地址赋给指针变量p*/
//c语言规定,数组名代表数组的首地址,也就是第0号元素的地址
p = a;        /*等价于p = &a[0]*/
int *p=a;       /*等价于 int *p = &a[0]*/

对于指向首地址的指针p,p+i(或a+i)就是数组元素a[i]的地址,*(p+i)(或*(a+i))就是a[i]的值。如果指针变量p已指向数组中的某一个元素,则p+1指向同一数组中的下一个元素。

引入指针变量后,就可以用以下两种方法来访问数组元素:

1、下标法,即用a[i]形式访问数组元素

2、指针法,采用*(a+i)的形式,用间接访问的方法访问数组元素,其中a是数组名,p是指向数组的指针变量,其初始值p=a。

 

字符串与指针

字符指针也可以指向一个字符串,可以用字符串常量对字符指针进行初始化。

char *str = "this is a strings.";

这是对字符指针进行初始化。此时,字符指针指向一个字符串常量的首地址。

还可以用字符数组来存放字符串:

char string[ ] = “this is a string”;

在这个语句中,string是数组名,代表字符数组的首地址。因此可以通过数组名string来访问字符串。

字符串指针和字符串数组的区别:

字符串指针和字符串数组两种方式都可以访问字符串,单他们有着本质的区别:字符指针str是个变量,可以改变str使他指向不同的字符串,但不能改变str所指向的字符串常量的值。而string是一个数组,可以改变数组中保存的内容。

指向函数的指针

在定义一个函数后,编译系统为每个函数确定一个入口地址,当调用该函数的时候,系统会从这个入口地址开始执行该函数。存放函数入口地址的变量就是一个指向函数的指针,称为函数指针。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘多拉的面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值