首页后端开发ASP.NET数组指针的用法有哪些?

数组指针的用法有哪些?

时间2024-01-31 16:43:04发布访客分类ASP.NET浏览273
导读:收集整理的这篇文章主要介绍了数组指针的用法有哪些?,觉得挺不错的,现在分享给大家,也给大家做个参考。int *a[4]; //指针数组指针数组就相当于一次声明了多个指针。数组的每一个元素都是一个指针。很好理解,下面主要看数组指针int (*...
收集整理的这篇文章主要介绍了数组指针的用法有哪些?,觉得挺不错的,现在分享给大家,也给大家做个参考。

int *a[4];
     //指针数组

指针数组就相当于一次声明了多个指针。数组的每一个元素都是一个指针。很好理解,下面主要看数组指针

int (*p)[4];
     //数组指针

数组指针就相当于一次声明了一个指针。只不过这个指针指向很特别,是一个数组。

[]优先级大于*,故数组指针声明时要加()。

例1:

#includestdio.h>
    #includestdlib.h>
void main(){
    //数组指针的用法,用处。    int b[16]={
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
    ;
        int (*p)[4];
     //该语句是定义一个数组指针,指针步长为4个int即16位。    //int *p2=&
    b;
        p=&
    b;
        int i=0;
    while(i16)    {
              PRintf("%d\t",(*p)[i]);
              //printf("%d\t",*p2++);
              i++;
    }
}
    

printf("%d\t",(*p)[i]); 遍历输出数组b;
数组指针就相当于舞王僵尸一样,带了小弟,n就是小弟的个数,通过下标值能直接访问到具体哪一个小弟,即数组里哪一个数

数组指针下标自增(i++)的时候,指针指向不变。

这里直接用整形指针就可实现,而且更方便简洁。见上面被注释部分。

例2:把例1的while()语句替换。

  while(i4)    {
              printf("%d\t",(*p++)[0]);
              i++;
    }
    

例2输出1 5 9 13,相当于指针一次移动了4个int.16个字节。

数组指针自增(*p++)时,指针指向移动sizeof(类型)。

其实上句在其他类型指针也适用。

如int *p;

//指针指向了int,就是整型指针,整型指针有啥特点?就是能保存整形变量的地址。有啥用途?就是p++的时候能指向下一个int型数。所以了?经常用指针指向一个数组。因为他们都是int型的,所以推导出步长了?整型指针的步长为sizeof(int),即4字节

//同理可以得出什么float型指针,char型指针什么的。。。

同理就得出了数组指针,特点?保存数组首地址。用途?p++的时候能指向下一个数组。所以了?要用它来指向一个二维数组。因为二维数组里的每一个元素都是相同类型的(都是一个int型数组),所以推导出步长了?sizeof(int[4]),即16

//说白了就一指针,指向了数组类型

例3:数组指针指向二维数组。

#includestdio.h>
    #includestdlib.h>
void main(){
    int a[3][4]={
{
1,2,3,4}
,{
11,12,13,14}
,{
21,22,23,24}
}
    ;
        int (*p)[4];
     //该语句是定义一个数组指针,指针步长为4个int即16位。    p=&
    a;
        int i=0;
    while(i3)    {
            //printf("%d\t",(*p)[i]);
            //数组指针,指向的是一个数组整体,相当于指针也带了下标,当执行i++操作时,下标+1,得到该数组的下一个元素,        //在该例中,指针没有位移,所以依次输出为1 2 3        printf("%d\t",(*p++)[0]);
            //整型数组类型的指针,指向的是一个数组整体,当执行*p++操作时,指针位移该数组长度的位数        //在该例中,即指针位移4个int的长度,所以输出是1 11 21        i++;
    }
}
    

推荐教程:《C视频教程》

以上就是数组指针的用法有哪些?的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: C语言函数基础知识有哪些?下一篇:visual c++6.0怎么新建C语言项目猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 数组指针的用法有哪些?
本文地址: https://pptw.com/jishu/594215.html
js简单粗暴的发布订阅示例代码 vue form表单post请求结合Servlet实现文件上传功能

游客 回复需填写必要信息