C语言数组怎么调用
发布时间:2025-05-12 08:44:22 发布人:远客网络
一、C语言数组怎么调用
有好几种方法,我稍微说一下,你回去找书看一看:
通过数组首地址指针带下标的指针引用一维数组元素。
引用一维数组中的某一个元素的方法:
*:求当前地址的内容&:求当前内容的地址
2*&a【i】//*在定义语句时代表定义一个指针变量,当在执行语句部分时代表间址运算符,引用一个指针变量指向的地址的内容。&叫求地址运算符,求当前内容的地址。所以*和&就像乘号和除号一样,互相抵消了。
3*(a+i):在数组名的地址上,加上i个存储单元。代表第(i+1)个元素,用间址运算符引用它,即等价于a[i]
4当(p=a;||p=&a【0】)则*(p+i)等价于a[i]
5当(p=a;||p=&a[0])则 p[i]等价于 a[i]//方括号不仅表示数组元素的记方括号不仅表示数组元素的记方括号不仅表示数组元素的记方括号不仅表示数组元素的记号号号号,也是一种运算符也是一种运算符也是一种运算符也是一种运算符.
总结:引用一维数组元素 a[i]的四种方法: a[i]*(a+i)若p=a,则 p[i]*(p+i)表示a[i]的地址的方法:&a[i] a+i p+i都表示当前数组第i个元素的地址。
这是引用的网页,你可以自己去看看!
二、c语言函数怎么调用数组部分
1、一、数组可定义为全局变量,函数直接调用。
2、二、数组可定义为局部变量,再通过参数传递到函数中调用(实参传数组名,表示数组首地址,也可通过指针或数组名+数字来传递数组局部地址)。
3、三、main函数想要调用函数返回的数组,可用static定义静态变量或malloc定义动态数组(字符串常量也可返回使用,但局部变量,在函数调用结束会被释放,不能作为返回地址使用)。
4、char str1[]="我是全局变量数组";
5、 char*str3=NULL,*str4=NULL,*str5=NULL;
6、 char str2[]="我是main函数的局部数组变量";
7、 printf("str3:%s,fun函数调用结束,我的地址依然可以使用\n",str3);
8、 printf("str4:%s,fun函数调用结束,我的地址依然可以使用\n",str4);
9、 printf("str5:%s,fun函数调用结束,函数结束不会自动释放\n",str5);
10、 static char str3[]="我是fun函数申明的静态数组变量";
11、 printf("str1:%s,fun函数可以直接调用\n",str1);
12、 printf("str2:%s,fun函数通过参数将我的地址传进来\n",s);
13、 char*str4="我是fun1函数的字符串常量";
14、 char sTemp[]="这是一个临时数组,之后用于给mallc申请的地址传值,传递内容为:(我是fun函数通过mallic申请的数组)";
15、 str5=(char*)malloc(sizeof(char)*len+1);
三、C语言 怎么返回一个数组
1、你想返回一个数组,因为你在一个函数内创建了数组,属于局部变量,所以他在stack部分,而stack部分是用后类似于销毁的,你返回的地址类似于一块垃圾的地址,所以编译警告。你要想返回函数内创建的数组地址的话需要
2、int*array=(int*)malloc(sizeof(int)*n);
3、}
这样这个数组建立在heap堆上,调用完函数还在,而你返回了那个堆上数组的首地址,这样就没问题了。
4、这样这个数组建立在heap堆上,调用完函数还在,而你返回了那个堆上数组的首地址,这样就没问题了。
5、楼上用static不推荐,用static的话会在整个程序的run time运行时都占用空间。而是用malloc,动态申请释放更合理。