数组指针的用法有哪些?
int *a[4]; //指针数组
指针数组就相当于一次声明了多个指针。数组的每一个元素都是一个指针。很好理解,下面主要看数组指针
int (*p)[4]; //数组指针
数组指针就相当于一次声明了一个指针。只不过这个指针指向很特别,是一个数组。
[]优先级大于*,故数组指针声明时要加()。
例1:
#include<stdio.h>#include<stdlib.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(i<16) { printf("%d\t",(*p)[i]); //printf("%d\t",*p2++); i++; } }
printf("%d\t",(*p)[i]);遍历输出数组b;
数组指针就相当于舞王僵尸一样,带了小弟,n就是小弟的个数,通过下标值能直接访问到具体哪一个小弟,即数组里哪一个数
数组指针下标自增(i++)的时候,指针指向不变。
这里直接用整形指针就可实现,而且更方便简洁。见上面被注释部分。
例2:把例1的while()语句替换。
while(i<4) { 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:数组指针指向二维数组。
#include<stdio.h>#include<stdlib.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(i<3) { //printf("%d\t",(*p)[i]); //数组指针,指向的是一个数组整体,相当于指针也带了下标,当执行i++操作时,下标+1,得到该数组的下一个元素, //在该例中,指针没有位移,所以依次输出为1 2 3 printf("%d\t",(*p++)[0]); //整型数组类型的指针,指向的是一个数组整体,当执行*p++操作时,指针位移该数组长度的位数 //在该例中,即指针位移4个int的长度,所以输出是1 11 21 i++; } }
推荐教程:《C视频教程》
以上是数组指针的用法有哪些?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

php数组指针用于操作数组。数组指针是数组内部的组织机制,每个数组都有一个内部的指针指向它“当前的”单元(元素),这个指针最初指向的是当前数组中的第一个单元;通过移动或改变数组指针的位置,可以访问数组中的任意元素。对于数组指针的控制PHP提供了多个内置函数:current()、pos()、key()、next()、prev()、end()、reset()。

PHP是一种广泛应用于网页开发的服务器端脚本语言,其语法类似于C语言,同时也提供了许多方便的函数和库。在PHP中,next()函数是一种用于移动数组指针到下一个元素的常用函数。一、什么是数组指针在PHP中,数组是一种非常方便的数据结构,可以存储很多有序的数据。数组中的每一个元素都有一个对应的下标,可以用来访问和修改该元素的值。除了通过下标来访问数组元素外,还

随着Golang语言的不断发展,函数的指针数组和数组指针也成为了Golang编程中的重要组成部分。在本篇文章中,我们将会探讨Golang函数的指针数组和数组指针的应用技巧,并为大家提供一些实用的示例代码和相关的解释。Golang指针数组的基本概念首先,让我们先来了解一下Golang指针数组。指针数组是一种数据类型,它是由多个指向不同变量或对象的指针组成的数组

数组指针和指针数组区别有:1、数组指针是一个指针,而存指针数组是一个数组;2、数组指针的声明方式是int *p = arr;,而指针数组的声明方式是int *arr[5];;3、数组指针可以用p[i]的形式访问数组中的元素,而指针数组需要用arr[i]的形式访问数组中的元素。

区别:对指针数组来说,首先它是一个数组,数组的元素都是指针,也就是说该数组存储的是指针,数组占多少个字节由数组本身决定;而对数组指针来说,首先它是一个指针,它指向一个数组,也就是说它是指向数组的指针,在 32 位系统下永远占 4 字节,至于它指向的数组占多少字节,这个不能够确定,要看具体情况。

在PHP中,可以使用reset函数将数组指针移回数组开头。使用reset函数之前,需要知道数组指针的概念。数组指针是一个内部的指针,指向当前操作的数组元素。在PHP中,可以使用foreach循环来遍历数组,也可以使用while循环和数组指针来遍历数组。不过,在使用while循环和数组指针遍历数组时,需要使用reset函数将数组指针移回数组开头。使用reset

指针数组和数组指针是两种不同类型的概念,在定义和使用上有所区别:1、指针数组是一个数组,其中的每个元素都是指针类型,而数组指针是一个指针,它指向一个数组的首地址;2、指针数组的声明方式为“type *array[]”,而数组指针的声明方式为“type (*ptr)[size]”。

数组指针和数组引用之间有以下区别:解引用需要:数组指针需要解引用,而数组引用不需要。指针算术:数组指针支持指针算术,而数组引用不支持。地址:数组指针存储数组首元素地址,而数组引用不是地址。常量kval:数组指针可以指向constkval,而数组引用不能。数组大小:数组指针不存储数组大小,而数组引用隐式地包含数组大小。
