c语言什么时候使用数组,什么时候使用指针?

c语言什么时候使用数组,什么时候使用指针?


青春有我
浏览 1058回答 4
4回答

富国沪深

任何时候都可以使用数组,使用指针。定义时,通常只有字符指针,和字符数组指针直接定义。用来表示字符串或字符串数组。其他一般定义数组。操作时用指针或数组。其他指针,多半用在参数传递,数据结构内部(不确定需要内存的大小,或者链表,二叉树等链式结构)的时候。还有一种是有些函数参数就是指针,这时定义一个指针,来操作传进来的指针参数比较好。指针作为参数,有一下几种用法,1)当作数组用,用来获取或设置数组元素。2)把一个比较长的数据结构传入函数,只需要一个指针就够了。3)传入变量的地址,用来读取或修改变量的值,主要是为了修改用。直接定义一个不指向任何对象的指针,并且也从不给他赋值,没什么意义;指针要么指向数组,要么指向变量,要么动态申请内存。NULL指针,只是一个方便的指针,表示不指向任何对象。真正有用的还是指向具体对象的指针。如果定义了一个指针,使用时要让他指向一个具体对象,当需要他不指向什么对象的时候,给他赋值为NULL;PS:C语言,数组名只是一个指针常量而已,离开定义可见处,数组大小的信息就不存在了。只有定义完全可见的地方,才可以获得数组的大小。数组作为函数的参数,和外部引用声明都不能获得数组的大小。参数只能传递指针,参数的大小只是指针的大小;只能看到声明的地方,获取数组大小的努力,只能换来错误。void fun1(int a[10]) //<==> void fun1(int a[]) <==>void fun1(int *a){}void fun2(int [10][10])// <==>void fun2(int a[][10])<==> void fun2(int (*a)[10]){}

幕布斯7119047

个人认为,当你需要某一变量需要一直存在的话,那么程序初始化时就可以直接使用数组之类的;而当你需要对已存在于内存的某些量做改变时,则适宜使用指针。这里需要注意的是,使用数组的前提是内存静态分配,其大小是不可改变的;所以若要求动态分配的话,还是需要使用指针的。希望对你有所帮助。

慕勒3428872

数组指针--指向数组的指针,是一个指针,其指向的类型是数组;指针数组--元素为指针的数组,是一个数组,其中的元素为指针。仔细研读下面的程序:#include <stdio.h>intmain(void){int a[2][2] = {{1,2},{3,4}};int (* p)[2];char * s[2] = {"hello", "world"};p = a;printf("%d, %d, %d, %d\n", (*p)[0], (*p)[1], (*(p+1))[0], (*(p+1))[1]);printf("%s %s\n", s[0], s[1]);return 0;}

千巷猫影

如果你想静态定义的时候你可以使用数组,动态定义的话可以使用指针,可以通过关键字new来给指针分配内存空间,例如,char arr[10] 你无论用不用得完这数组,这空间都会被占用但是如果你定义 char *arr;然后再根据你要存的数据的大少分配内存,就省空间咯!
打开App,查看更多内容
随时随地看视频慕课网APP