数组c语言,c语言指针数组

2021-01-10 16:20:57 字数 3647 阅读 2713

1楼:黑马程序员

main()

for(i=0;i<=10;i++)

printf("%5d",b[i]);

printf("\n");

2楼:

int a[2][3]=;这样是可以的,{}里边把要赋值的数都写上,如例子中数组元素一共有6个,但是你赋值的个数小于6个也是可以,没有值的 部分系统能够自动赋值为0

c语言指针数组

3楼:千锋教育

p是int类型指针,指向数组a的第1个元素即一个一维的数组首地址所以p[1]相当于a[0][1]所以printf("%d\n",p[1]);

输出2 。 int **pp =pa 是声明了一个指向pa的指针,而pa又是指向a首地址的int类型指针。pa指向的是a的第一维,pa[0] = a[0] ,pp[2][1]相当于a[2][1]而a数组的[2]中只初始化了[2][0]位置的7,那[2][1]位置就是默认的值0,所以printf("%d\n",pp[2][1]);输出0

4楼:匿名用户

void main()

,,};

int *pa[3]=;

int *p=a[0];

int **pp=pa; //这句什么意思??//定义了指向指针的指针变量

printf("%d\n",*a[1]);

printf("%d\n",*(*(a+1)+1));

printf("%d\n",*pa[1]);

printf("%d\n",p[1]); //为什么输出为2 ???//这里应该是输出了一个地址

printf("%d\n",pp[2][1]);} // pp不是地址吗,不加* 吗?//指针指向数组的首地址之后是可以当数组名用的。

c语言中数组的合并

5楼:千锋教育

//两个数组合并,参考**:

#include "stdio.h"

int d=0; //用于记录数组c的大小,和数组c的输出类的一些操作

void main()

}if(leap==0) break; //经历了一个内for循环,leap==0的话,表明排序成功了,不需要接下来在排序了。}}

void prin(int *p,int n) //自定义函数 数组输出函数

printf("\n");

}void hb(int *o,int *p,int *q,int m,int n) //m为p指向数组的大小 n为q指向数组的大小 指针o指向合并的数组

else

if(i==m||j==n) break;

}if(i==m)

}if(j==n)}}

6楼:匿名用户

#include

void displayarray(int *parray, int nlen)

}void mergearray(int *parray1, int nlen1, int *parray2, int nlen2, int *parray)

else if (parray1[i] > parray2[j])else

}if (i == nlen1)

else

}int main()

;int array2 = ;

int array3[8];

mergearray(array1, 4, array2, 5, array3);

printf("merge array:\n");

displayarray(array3, 9);

return 1;}

c语言数组问题

7楼:千锋教育

你的**问题有以下几个:

1、min和max没有初始化

2、对于a[min]和a[max]没有做循环参考**如下:

#include

main()

printf("最大数是%d,下标是%d,最小数是%d,下标是%d\n", a[max], max, a[min], min);}

8楼:天雨下凡

#include

void main()

printf("min=%d,max=%d\n",min,max);}

c语言的问题,指针数组

9楼:匿名用户

改变不了,字符串常量是改不了的,你可以试试char *p = "aaaaa";

p[1] = b;这样是改不了的

只能定义二维数组才可以改

char p[3][100] = ; 这样才可以改,不要问为什么,字符串常量就是不能改

10楼:千锋教育

直接让指针指向另一个字符串即可

p[0]="aaaa";

11楼:橙

这样定义指针指向的字符串是无法修改的。

c语言新手 数组问题

12楼:匿名用户

(a+i+j)=((a+i)+j) ,

理解运算优先级就好了, 里面的那个括号 可有可无

13楼:斯坦恩贝格(北京)电子****

原解析有误。

二维数组其实就是i个具有j个元素的一维数组,因此a[i][j] --> (*(a+i))[j] --> *(*(a+i)+j)

c语言编程 二维数组

14楼:兄弟连教育北京总校

在c语言中,有时我们需要函数的返回值为一个二维数组。这样外部函数接收到这个返回值之后,可以把接收到的二维数组当成矩阵操作(外部函数不可用普通的一级指针接收返回值,这样的话,外部函数将不知道它具有二维性)。方法如下:

法1.没有使用typedef类型定义

[cpp] view plaincopy

#include

int (*fun(int b[2]))[2]int main()

; int (*c)[2];

c = fun(a);

for(i=0;i<2;i++)

for(j=0;j<2;j++)

printf("%d ",c[i][j]);

return 0;

} 法2.使用typedef类型定义

[cpp] view plaincopy

#include

typedef int (*r)[2];

r fun(int b[2])

int main()

; r c;

c = fun(a);

for(i=0;i<2;i++)

for(j=0;j<2;j++)

printf("%d ",c[i][j]);

return 0;

} 使用typedef类型定义可以增加程序的可读性这两种方法本质上是一样的

15楼:程序员的每一天

c语言数组之二维数组

c语言中数组名和指针变量的区别,C语言中数组名和指针的区别

1楼 销 数组名除了sizeof会返回数组大小,其他的实况下是相当于一个指针常量无区别的 指针常量也就是说,不能改变数组名的值,比如int a 10 a a a a 10等都是非法的 c语言中数组名和指针的区别 2楼 匿名用户 数组在当作参数传递时,可以当作指针 当然,参数传递相当于赋值操作,所以用...

C语言数组问题,C语言新手 数组问题

1楼 千锋教育 你的 问题有以下几个 1 min和max没有初始化 2 对于a min 和a max 没有做循环参考 如下 include main printf 最大数是 d,下标是 d,最小数是 d,下标是 d n a max max a min min 2楼 天雨下凡 include void...

c语言中多维数组下标问题,C语言中多维数组下标问题?

1楼 匿名用户 假如 int a 30 int b 15 a b 10 b就是下标变量, a 3 111 3就是下标 a 0 ,a 1 ,a 2 不能当作下标变量使用,他们是数组名,不是一个单纯的下标变量! 就是说不能 a a 4 100这样用 大概是这个意思 我没试过。。。。 2楼 算o你o狠 下...