三九宝宝网宝宝教育教学论文

C语言中关于数组名作为函数参数方面的问题

01月06日 编辑 39baobao.com

[c语言中如何给不确定大小的数组定义并使用]C语言中没有明确的“动态数组”(也就是不确定大小的数组)这个概念, 只能用动态内存分配来实现,我给你一个思路: 创建数组——用动态分配分配一个指定大小的内存(数组) 销毁数组——...+阅读

不知道你说的第2,4,5语句对应的是什么。。。。

帮你解释为什么是1:

1. 当你调用fun(a,b,s);

传进的参数实际上是:&a[0], &b[0], s变量的值(实际上也就是&a[0])

2. 现在我们把fun的形参换个名字 fun(int *p1, int *p2, int *p3)

进入fun时 p3 = s ,即p3 = &a[0].

你调用malloc时返回的值是一个int*,实际上 p3 = malloc返回的新指针p4

*p3=*p1+*(p2++) 即 *p4=*p1+*(p2++);

看到错误了吗,p4并不是s,你算出来的值赋值到malloc返回的指针p4指向的内存了。

3. 你想p3(即你的s)拿到计算的值,请把s=(int*)malloc(sizeof(int) );这句去掉。

4. 另外malloc出来的内存是需要释放的,请调用free释放,不然程序不退出的情况下内存会占用。

以下为关联文档:

C语言中如何定义大小不确定由运行时确定大小的数组#include <stdio.h> #include <stdlib.h> // malloc, free int main() { int i, n; int* p; // 声明为指针 scanf( "%d", &n ); p = ( int* )malloc( sizeof(int) * n ); // 以字...

C语言怎么输入不确定个数的数组这种技术叫做动态数组,C语言中的实现方法如下,涉及内存的申请等: #include <stdio.h> #include <stdlib.h> int main() { int n1,i; int *array; puts("输入你需要的数组的长度:"); s...

C语言怎样实现不确定元素个数的数组的数据输入int n,i; int *a,*b,*c; printf("请输入数组大小: "); scanf("%d",&n); a=(int*)malloc(sizeof(int)*n); b=(int*)malloc(sizeof(int)*n); c=(int*)malloc(sizeof(int)*n); printf("请...

怎么用 R语言输出循环数组假如不知道数组的元素个数,一般为int数组,或char数组,下面看代码实现要求: #include<stdio.h> void main() { int num[]={1,2,3}; char str[]={'4','5','6'}; for(int i=0;i<siz...

C语言中求一个二维数组的一维数组的长度有什么函数你要了解二维数组其实是模拟一维数组的,因为计算机的储存机制是一维的.charstr[20][50],这样其实是定义了20组一维数组,其中每组又含有50个char型变量的数组. 你用strlen(str)...

关于c语言的问题如何对数组进行strlen算长度strlen 算的是数组中实际填充的字符数,不包括'\n' sizeof 算的是数组的固有长度 例如: #include<stdio.h> #include<string.h> void main() { char a[20] = {1,2,3}; printf("%...

C语言中都有什么类型数组我们常见的C需要类型数组有: char:只允许输入字符, int:是整型变量,输入整数,范围不大,在-32767到32767, float:输入可以使小数也可以输入整数,在不确定的情况下,就用float,范围还是比...

C语言返回指向数组的指针的函数第二种方法是因为类型不匹配(double*与(double(*)[ROW])产生错误,而且 ((double (*)[row])matrix); 里的[row]是一个变量,而指向数组的指针 double (*matrix)[ROW]里的ROW只能使...

C语言从txt文件中读取多行用逗号分隔数据保存在数组ai别听最快回答 他的程序不会处理输入的个数 这道题说白了就是处理逗号 #include<stdio.h> using namespace std; int a[2013]; int x; int i=1; int main() { freopen("test.i...

推荐阅读
图文推荐