C语言中指向指针的指针什么时候用,最好说的详细一些,举个例子!山东

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 08:31:32

C语言中指向指针的指针什么时候用,最好说的详细一些,举个例子!山东
C语言中指向指针的指针什么时候用,最好说的详细一些,举个例子!山东

C语言中指向指针的指针什么时候用,最好说的详细一些,举个例子!山东
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/*当然有必须使用二级指针才能解决的情况,如,某个函数的功能
是返回某个问题的计算结果,但是结果数据是不确定个数的值,所以
在调用此函数时不知道事先应分配多少空间来保存返回的数据,此时
的处理办法就是传递一个没有分配空间的指针的指针(地址)进去,
让函数自己根据计算的结果分配足够的空间来保存结果,并返回,
调用者使用了结果后,由调用者负责内存的释放,即,大家可能听说
过的"谁使用(调用)谁释放"之类的话,如下面的代码:*/
//返回不定结果个数的计算函数
//参数int **pResult--为保存返回数据的指针的指针
//参数int &count--为保存返回的结果个数
void Compute2(int **pResult,int &count)
{
//使用随机数来模拟计算结果数的个数
srand(time(NULL));
count = rand()%10;//控制个数在10个以内
*pResult = new int[count];
for ( int i = 0 ; i < count ; i++ )
{
(*pResult)[i] = rand();//给结果随即赋值
}
}
//返回不定结果个数的计算函数(此函数不能返回数据)
//参数int *pResult--为保存返回数据的指针
//参数int &count--为保存返回的结果个数
void Compute1(int *pResult,int &count)
{
//使用随机数来模拟计算结果数的个数
srand(time(NULL));
count = rand()%10;//控制个数在10个以内
pResult = new int[count];
for ( int i = 0 ; i < count ; i++ )
{
pResult[i] = rand();//给结果随即赋值
}
}
int main(void)
{
int *pResult = NULL;//待获取结果的指针
int count = 0;//返回结果的个数
////pResult为指针,第二个参数使用引用传递,使用这个函数时,在函数内部分配的内存的指针并没有返回到主函数中
//Compute1(pResult,count);
////输出结果
//for ( int i = 0 ; i < count ; i++ )
//{
// printf("第 %d 个结果为 : %d\n",pResult[i]);//如果使用这种调用方法,可以看到,执行了Compute1()函数后,pResult的值还是为NULL
//}
//delete [] pResult;
//pResult = NULL;
//&pResult为指针的地址(即指针的指针),第二个参数使用引用传递
Compute2(&pResult,count);
//输出结果
for ( int i = 0 ; i < count ; i++ )
{
printf("第 %d 个结果为 : %d\n",i,pResult[i]);
}
delete [] pResult;
pResult = NULL;
getchar();
return 0;
}

C语言中指向指针的指针什么时候用,最好说的详细一些,举个例子!山东 C语言中指向指针的指针什么时候用,最好说的详细一些,举个例子!我的意思是说有些情况可以用一级指针解决,可以不用二级指针,但是我说的是那些必须要用到二级指针才能解决的情况 C语言——指向函数的指针 C语言中指向NULL的指针和野指针有什么区别.NULL是空的意思.这两个指针不一样了吗. c语言中*s++=*p是什么意思*s和*p是指向数组的指针 C语言,用指向函数指针的知识实现两个函数求和的功能 C语言中指针的作用是什么? C语言:传入两个字符串型指针,把其中一个指针所指向的地址空间中的内容复制到另一个指针所指向的地址空间 c语言中,定义一个指针 int*p.假定刚开始时候p所指向的地址相同.则指针p++和*(p++)的意义是否相同? C语言指针的传递性可不可以这样认为a指向bc指向a则c指向b? C语言中若定义数组和指向数组的指针,其中元素的地址可用哪几种方式表达? C语言2个指针指向的值怎么样实现相加和相乘? c语言:两个指向字符串的指针,*p1,*p2,请问while(*p1++=*p2++)是什么意思? C语言第十七题 保持指针变量的指向不变是什么意思? C语言中,指针型函数和函数型指针的区别 C语言指针基本概念及其指针变量的定义是什么 图中指针指向100 指向常量的指针,指针常量,指向常量的指针常量,这三个东西有什么不同呀?我都看书看了N遍了 请大家用最通俗的语言解释