c语言-指针

指针变量&普通变量

step1:定义指针类型(取决于与其相关联普通变量的类型) int*p,a=5;
step2:将指针与某一变量关联 指针=&变量

*指针=指针指定的变量的值 eg.*p=5
改变指针的方向:新定义一个指针
eg.

int*p,*q;

int*r;
r=p;
p=q;
q=r;

指针变量&一维数组

关联:指针=&数组名[某数]

赋值:*指针=指针指定的变量值
eg.

int *p,*q,a[3]={2,4,6};
p=&a[0];
q=&a[1];

*p=2*(*p); 	//即:a[0]=2*a[0],将2倍的a[0]赋给a[0]

More.指针+i=&数组名[某数+i]
eg.

int *p,*q,a[3]={2,4,6};	//定义指针与数组
p=&a[0];		//关联指针与数组
q=&a[1];

*(q+1)=*(p+2);	//*(q+1)=*(p+2)=a[2]

形式转换
【表示1】

for(i=0;i<5;i++)
printf("%d\t",*(p+i));

【表示2】

for(p=&a[0];p<=&a[4];p++)
printf("%d\t",*p);

区别:
&数组名[某数]=数组名+某数
数组名[某数]=*(数组名+某数)

【一维数组相关函数】
形式参数:在函数定义的函数首部,函数名后的括号中说明的变量(简称:形参)
实在参数:当一个函数被调用时,需要在调用处给出对应的调用时需要的参数(简称:实参)

数组名→指针变量:
形参:函数声明:数组[ ]→*p
………函数解释:数组名[i]→*(p+i)
实参:函数使用:数组名→q(使用前需先关联)(q为指针名)

指针&二维数组

关联:指针=&数组名[数a][数b]

*指针=指针指定的变量的值

指针+i=&(数组名[数a][数b]后第i个元素)
eg.int *p,a[2][2]; *p=&a[0][0]; *q=&a[1][1]; 则*(p+1)=a[0][1]; *(q-1)=a[1][0];

形式变换:
&数组名[数a][数b]=数组名[数a]+数b
……………………=数组名[0]+a*列数+b
数组名[数a][数b]=*(数组名[数a]+数b)

【二维数组相关函数】
数组名→指针变量:
形参:函数声明:数组名[ ][某数]→*p
………函数解释:数组名[i][j]→*(p+i*列数+i)
实参:函数使用:数组名→*数组名

【指向行变量】
step1:定义 (*p)[列数]
step2:关联 p=二维数组名+某数n

*(*(p+i)+j)=二维数组名[n+i] [j]

指针变量&函数

定义:类型(*p)(类型 类型)
关联:p=函数名
函数名=(*p)
eg.

int max(int x,int y); 	//定义函数类型
int (*p)(int,int);	 //定义指针变量
p=max;		//关联指针&函数

返回指针值的函数

指针&数组的数值关系暨小结

关联:指针=&值
………值=*指针

简便写法:&a[i]=a+i
……………a[i]=*(a+i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值