2 u010600048 u010600048 于 2014.05.07 10:49 提问

怎么随机给二维数组赋值,指针表示

#define M 25
#define N 25

int array[M][N];
int i, j;

void Rand(int *p, int n)
{
p = &array[0][0];
for(i = 0;i<n;i++
{

*(p + i) = rand()%100;
}
}

这是一维指针,要求是二维,怎么破

2个回答

u010105970
u010105970   2014.05.10 13:11

#include
#include

//输出数组中的数字
void Output(int *a, int len);

void main()
{
int a[5][5];

int len = sizeof(a) / sizeof(int);

for(int *p=&a[0][0]; p<&a[0][0]+len; p++)
{
    *p = rand () % 100;
}

int *p = &a[0][0];

//输出数组中的数字
Output(p, len);

system("pause");

}

//输出数组中的数字
void Output(int* a, int len)
{
for(int *p=a; p<a+len; p++)
{
printf("%d ",*p);
}

printf("\n");

}

u014262884
u014262884   2014.05.14 20:56

两层嵌套就是了

(p+i) 等价于 p[i]
*((
(p+i))+j) 等价于 p[i][j].也可以根据上面的等价写成 *((p[i])+j)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
用指针实现的二维数组创建及赋值
用指针实现的二维数组创建及赋值 第一种: int m = 3; int (*p)[5] = new int[m][5];      // 可以理解为p是一个指向含有5个int型元素的型数组的指针 for (int i=0;i for (int j=0;j p[i][j] = i+j; } } for (int i=0;i for (int j=0;j cout } c
复习指针数组以及如何把二维数组赋值给二维指针
#include #include using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; void listadd(){ int flag = 0; ListNode* pre = new ListNode(0); List
关于二维数组地址和指针之间赋值的问题
在开发工业以太网项目的时候经常遇到一些小细节问题,在建立数据报进行传输的过程中传递txbuf缓冲区的地址的时候就遇到类似下面的问题。 一.简单说明1 定义一个2X3的int型的二维数组int array[2][3];并且给这个二维数组赋值1,2,3,4,5,6; arr
为什么二维数组不能赋值为二维指针
http://zhidao.baidu.com/link?url=cItXIye6gilS80l_w0lhg0cFnpqFZkjOO0lrx201k4NiB3_c_-nv4U6blaM5_oAnHtR_Z4o32Xdcu6rtKyYDi0FHoCO0YcI8rbCOLW8h1nK 我理解你的问题是不是这样:int a[3][4]; int**p = a;为什么会报错是吧? 回答:你理解的
C语言-- 二维数组变量指针取值的写法
#include //二维数组 指针取值的三种写法 int main(int argc, const char *argv[]) { //声明一个二维数组并赋值 int a[3][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}}; //1.a+1二维数组指针变量a向前移动一个单位,移动到二维数组的第二个元素{4,5,6,7}
Java 随机给二维数组赋值,打印输出每个元素
题目:     Java 随机给二维数组赋值,打印输出每个元素 代码: import java.util.Random; public class TestArrays1{ public static void main(String[] args){ //随机给二维数组赋值,打印输出每个元素 Random random=new Random(); int rand=0
为什么必须将二维数组数组名赋予数组指针(行指针)而不能赋给指针数组或者二级指针?
二维数组:int a[5][4]; 行指针:int (*p)[4]; 指针数组:int  *pt[5]; 二级指针:int **ptr; 现在开始分析一下: 二维数组名为a,而二维数组名的实际含义是什么:a实际是二维数组第一行的首地址,为什么呢,现在来看: a = &(*(a + 0)) = &(a[0])= &a[0],这样看就明显了,也就是说a并不是二维数组的首地址,而是二
怎么用指针操作二维数组
本人第一次发博客,请大家多多指教 我们都知道一维数组的我们都很熟悉: int a[5] = { 1,2,3,4,5 }; int*p = a; int i, j; 这里p指针是int型指针,这里的赋值是将数组a的内存中的首地址啊a【0】在内存中的位置,地址传给p,这样p就能代表a数组了 这时我们可以用平p【1】,p【2】……依次代表数组a【1】,a【2】……; 接下来我们看二维数
二维数组与指针、指针数组、数组指针的用法
二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组下面我们讨论指针和二维数组元素的...
指针的赋值、一维数组的赋值、二维数组与指针
1、指针的赋值 int a; int *p; p = &amp;amp;a; 或者 int a; int *p = &amp;amp;a; 2、一维数组的赋值 int *p,a[i]; p=a;//数组的首地址传给了指针变量,则该指针变量指向了该数组。 或者 int *p,a[i]; p=&amp;amp;a[0];//数组的首地址传给了指针变量,则该指针变量指向了该数组。 3、二维数组与指针 ...