前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言:二维数组与指针

C语言:二维数组与指针

作者头像
岳泽以
发布2022-10-26 16:11:52
8890
发布2022-10-26 16:11:52
举报
文章被收录于专栏:岳泽以博客
代码语言:javascript
复制
#include<stdio.h> 
int main(){
    int a[3][4]={{1,2,3,4},{4,3,2,1},{5,6,7,8}};
    //a指向首行元素
    int b[3]={1,2,3};//指向一个元素
    printf("%d\n",a);//指向首行元素的地址
    printf("%d\n",a+1);//指向第二行元素的地址
    printf("%d\n",*(a+0)+0);//指向行为0列为0的地址
    printf("%d\n",*(a+0)+1);//指向行为0列为1的地址
    printf("%d\n",a[0]+0);//指向行为0列为0的地址 
    printf("%d\n",a[0]+1);//指向行为0列为1的地址
    printf("%d\n",&a[0][1]);//指向行为0列为1的地址
    printf("%d\n",*(*(a+0)+1));//指向行为0列为1的值
    printf("%d\n",a[0][1]);//指向行为0列为1的值
    printf("%d\n",*(a[0]+1));//指向行为0列为1的值
    return 0; 
}

int (*p)[4];表示定义了一个指针p,这个指针指向一行元素。这一行有4个元素。这指针p是指向一行有4个元素的指针。

代码语言:javascript
复制
#include<stdio.h> 
int main(){
    int a[3][4]={{1,2,3,4},{4,3,2,1},{5,6,7,8}};
    int (*p)[4];
    p=a;
    for(int i=0;i<=2;i++){
        for(int j=0;j<=3;j++){
            printf("%d",*(*(p+i)+j)); 
        }
        printf("\n");
    }
    return 0; 
}

指向函数的指针

函数的名称表示一个函数在内存中的起始地址,函数名称就是函数的指针(地址),所以可以定义一个指向函数的指针变量,用来存放某一个函数的起始地址。

指向函数的指针一般形式:

类型名 (*指针变量)(函数的参数列表)

例如:

代码语言:javascript
复制
#include<stdio.h> 
int add(int a,int b);
int max(int a,int b);
int main(){
    int(*p)(int,int);
    p=add;
    int a=(*p)(4,5);
    printf("%d\n",a);
    p=max;
    a=(*p)(4,5);
    printf("%d\n",a);
    return 0;
}
int add(int a,int b){
    return a+b;
}
int max(int a,int b){
    return a>b?a:b;
}

返回值为指针的函数

一个返回值为指针(地址)的函数,称为返回指针值的函数。

一般形式:类型名 *函数名(参数列表)

例如:有3个学生,每个学生有4门课程,要求用户输入学生的序号,输出该学生的所有课程成绩。

代码语言:javascript
复制
#include<stdio.h> 
int main(){
    int *search(int(*p)[4],int n);
    int a[3][4]={{1,2,3,4},{4,3,2,1},{5,6,7,8}};
    int *p;
    p=search(a,1);//第二个学生
    for(int i=0;i<=3;i++){
        printf("%d",*(p+i));
    }
    return 0;
}
int *search(int (*p)[4],int n){//第n个学生的分数 
    int *pt;
    pt=*(p+n);
    return pt; 
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指向函数的指针
  • 返回值为指针的函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档