C语⾔理解篇:关于⾃定义函数如何引⽤main函数中的数组的
理解
⾸先还是⽤⼀道题⽬来更好的了解如何做到将main函数中的数组通过什么⽅式使得其在⾃定义的⼀个函数中能够使⽤。
题⽬:在main函数中定义⼀个数组并为其赋值,然后⾃定义⼀个函数order(),使得main函数中的数组能够在order函数中引⽤并输出。
源代码:
#include <stdio.h>
#include <string.h>
void order(char* str,int k)
{
int i, j;
for (i = 0; i < k; i++)
{
printf("%c\t", *str);
str++;
}
}
int main()
{
c语言如何创建字符串数组
char arr[] = "abcdefg";
int n;
n = strlen(arr);
order(arr,n);
}
⾸先先确定main函数中有什么内容,第⼀个是定义⼀个数组arr,并为其赋值abcdefg,然后定义⼀个计算字符串长度的变量n,通过strlen 库函数计算arr数组中有多少个字符,并把值赋给n,然后调⽤order函数,并把arr和n传送到order函数中,值得注意的是这⾥传送给order 函数的arr其实只是把arr的第⼀个字符的地址传送了过去,也就是把字符'a'的地址传到了order函数,然后order函数⽤指针变量str接收,指针变量⽤char*定义,然后再定义⼀个整型变量k接收n的⼤⼩。
下⼀步就是进⼊到了order函数内,定义⼀个整型变量i,通过for循环来⼀个⼀个输出数组arr内的内容,因为n为数组的⼤⼩,所以for循环中的i从0开始,到k的前⼀个数结尾,为数组的字符长度⼤⼩,然后使⽤解引⽤,通过地址间接引⽤数组的值,⼀开始str接收到的是字
符‘a’的地址,所以通过解引⽤*str,那么其代表的值就是字符'a',通过printf语句将*str(即字符‘a’)输出,然后再让地址str加⼀,就到了数组的下⼀位,如此循环输出,到最后i=k时,不满⾜循环条件跳出循环,结束。
以上就是如何将main函数中的数组的全部内容引⽤到⾃定义函数中使⽤,重点还是main函数向⾃定义
函数中传送的只是数组的⾸字符的地址,在⾃定义函数中需要⽤指针变量char*去接收这个地址,然后通过解引⽤去使⽤这个地址对应的字符,最后通过使地址加⼀,即
str++的操作,就可以达到完成对当前地址对应的数组字符的引⽤然后再往下⼀位数组的引⽤的效果。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。