当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

C语言如何动态创建二维数组

更新:03-07 整理:39baobao.com
字体:

[C语言二维数组]/***用二维数组保存学生成绩****/ #include"stdio.h" #define M 100 main() { int i,a[M][2],n,c=0,m=0,max,min; printf("请输入学生记录数:"); scanf("%d",&n); /*********输入每个...+阅读

两种方法: 1.转化为一维数组申请 2.先申请全部行首指针,再按行逐行申请 1. a=(int *)malloc(sizeof(int),(unsigned)m*n); 使用的时候就和一般的二维数组一样。 举个例子给你: #include "stdlib.h" #include "stdio.h" #includeint main() { int i,j; int n;//这个就是需要指定的行数 int (*p)[10]; scanf("%d",&n);//取得行数 //动态生成二维数组,指定列数为10,如果想改,自己该里面 的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int)); p=(int (*)[10])malloc(n*10*sizeof(int)); //动态申请n行10列的二维数组 for(i=0;i

用C编写动态数组

#include<iostream>

#include<vector>

using namespace std;

int main()

{

int len;

cin>>len;

vector<int> arr(len);

for(int i=0 ; i< len ; i++ )

arr[i]=i;

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

cout<<arr[i]<<" ";

return 0;

}

注意:此种动态数组是不可变的,不能对它的元素进行排序。

#include<iostream>

using namespace std;

int main()

{

int len;

cin>>len;

int *arr;

arr=new int [ len ];

for(int i=0 ; i< len ; i++ )

arr[i]=i;

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

cout<<arr[i]<<" ";

cout<<endl;

return 0;

}

可以对new 申请的数组进行在排序。在C中可以用malloc申请动态数组

C动态数组类例子

在函数返回值定义这里加上&;(引用), 将代表你返回的是一个变量引用.

听起来是废话, 所以你要补充一下关于C++ 引用 的知识, 引用是代替以前C指针的一种方式, 实际上它在底层就被翻译成C指针来操作.

比如:

point &element(int n)

{return points[n];}

当有一个有一个调用产生的时候, 这里实际返回的是points[n]的指针, 如果你的调用方是像下面这样写的话,可以字节在实例外修改points[n]

array some;

...

point &a = some.element(1);

那么在你改动a的时候同时也改动了some.points[1]

如果不使用&;, 则通常编译器会加一个隐式的拷贝动作,相当于

point a;

point b;

b=a;

还有就是就算你的element加上了&;, 但是像下面这样的代码仍然是一个拷贝动作

point a = some.element(1);

因为你的a的定义是一个实例,而不是一个引用

在很多情况下你可以把&;直接看作是一个指针, 只是访问的时候不需要加*符号的指针.

有一种有趣的情况

point &a=some.element(1)

point *b=&a;

在这里如果element 返回的是一个points[1]引用,那么b就是字节指向points[1],而不是a

但是如果element返回的是一个实例拷贝,则b就指向的是a

本文地址:https://www.39baobao.com/show/29_47940.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

c语言二维数组编程1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include<stdio.h> #include<string.h> intmain() { chara[3][100]; inti,j,n; for(i=0;i<3...

编写c语言二维数组一: #include <stdio.h> void main(){ int i,j; int a[5][3]; for(i=0;i<5;i++) for(j=0;j<3;j++){ scanf("%d",&a[i][j]); } for(i=0;i<5;i++){ for(j=0;j<3;j++){ printf("%d...

C语言二维数组问题不是 这么说吧,数组名本身就是指针,指向数组的第一个元素 至于你所说的调用调用二级(二维吧)数组,难道不是如普通变量般直接调用吗? 根据问题补充说,这是不允许的,main()函数的形参是...

C语言如何动态开辟数组void creat(linklist &L) { int x; L=new Lnode; linklist p,u; p=L; cout>x; while(x>0) {u=new Lnode; u->data=x; p->next=u; p=p->next; cin>>x; } p->next=NULL; }...

C语言二维动态数组问题p不是二维数组,是指向指针的指针,而且p[i]这样的使用也是错误的。 指向指针的指针,意思就是说这个指针必须指向一个指针类型的地址,因为指针是一个变量,因此指针也有自已的地址。...

C语言动态数组数组案例#include #include int main() { int*n,*p; int i; n=(int*)calloc(1,sizeof(int)); for(i=0;i{ n[i]=i+1; printf(%d\t,n[i]); p=(int*)realloc(n,(i+2)*sizeof(int));//动态...

C语言如何定义动态数组360问答 C语言中怎样定义动态一维数组 ruisiteng LV12 2013-09-08 用calloc或者malloc做。 因为 int n; int a[n]; 这个操作是不合法的,, 所以要用到分配内存的函数,, 请各位大虾...

c语言或c如何自由创建数组C语言: int i=0; scanf("%d",&i);//输入i int *p=(int *)malloc(sizeof(int)*i); C++: int i=0; cin>>i; int *p=new int[i]; 5*4的: C语言: int i=0,j=0; scanf("%d",&i);//输入i sc...

c语言二维数组排序#include int main() { int a[100]={12,35,36,45,88,77,99,14,123,321, 78,98,58,52,54,56,575,59,15,222, 111,222,333,444,555,666,777,888,999,101, 22,33,44,55,66,75,4...