指针

本文深入探讨了C语言中指针的基本概念及其与数组的关系,包括如何使用指针操作数组元素,通过指针访问二维数组的方法,以及如何利用指针进行参数传递来修改变量值等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int *f(int *p,int *q);//返回指针p和q所指数值的大值
int m=1,*r=&m;//r为指向m的指针

示例:
#include <stdio.h>
int main(void) {
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1); //*ptr相当于&(a[5])
printf("%d,%d",*(a+1),*(ptr-1)); //输出2 , 5
}
*(a+1)就是a[1],*a就是a[0],
示例:
#include <stdio.h>
int main(void) {
int arr[][3]={1,2,3,4,5,6};//2行3列的二维数组
int (*ptr)[3]=arr;//一个指向整型数组的指针
printf("%d,%d\n",(*ptr)[0],(*ptr)[1]); //输出1 2
ptr++;//表示指向arr的下一行
printf("%d,%d\n",(*ptr)[0],(*ptr)[1]); //输出4 5
}
用指针方式实现数组相乘运算2x3*3x4
用2x4的数组保存数据

参数传值
参数传递分为:传值和传地址
#include <stdio.h>
void change_value(int x)
{
x=x+10;
}
void change_address(int *x) //*x表示一个指向x整数的指针
{
*x=*x+10;
}
int main() {
int a=3;
change_value(a);
printf("a=%d\n",a); //3
change_address(&a);
printf("a=%d\n",a); //13
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值