\t\t由一个网友的问题想到的(指针作为形参, p++ 和 p + 1的区别 )
2012-12-05 17:17
246 查看
#include <iostream>
using namespace std;
void mm(double* const array, int length)
{
double *p = (double*) malloc(length * sizeof(double));
double *pt = p; //保留初始指针
for (int i = 0; i < length; i++)
{
//① ② 不同时出现 ,比较两者区别 ,两者在赋值的时候没有区别,都能给期望的内存空间赋值,但是①中p的值不变,只是取p后第几个地址, ②中p的值变了 ,p移动了位置,也就不再指向刚开始申请的那段内存
*(p + i) = *(array + i); // ①
*(p ++ ) = *(array + i); //②
}
free(pt);//如果用②赋值,那么必须用pt释放,因为p已经不再是当年的p了 ,而pt还是pt ,仍然让然指向malloc申请的内存
}
int main()
{
double b[] = {1.2, 5.6, 6.9};
int a = sizeof(b) / sizeof(double);
mm(b, a);
return 0;
}
using namespace std;
void mm(double* const array, int length)
{
double *p = (double*) malloc(length * sizeof(double));
double *pt = p; //保留初始指针
for (int i = 0; i < length; i++)
{
//① ② 不同时出现 ,比较两者区别 ,两者在赋值的时候没有区别,都能给期望的内存空间赋值,但是①中p的值不变,只是取p后第几个地址, ②中p的值变了 ,p移动了位置,也就不再指向刚开始申请的那段内存
*(p + i) = *(array + i); // ①
*(p ++ ) = *(array + i); //②
}
free(pt);//如果用②赋值,那么必须用pt释放,因为p已经不再是当年的p了 ,而pt还是pt ,仍然让然指向malloc申请的内存
}
int main()
{
double b[] = {1.2, 5.6, 6.9};
int a = sizeof(b) / sizeof(double);
mm(b, a);
return 0;
}
相关文章推荐
- 由一个网友的问题想到的(指针作为形参, p++ 和 p + 1的区别 )
- C++引用&和指针在作为形参时的区别
- C++引用&和指针在作为形参时的区别
- 详谈C++引用&和指针在作为形参时的区别
- C语言指针作为形参的一些问题
- 指针作为函数的形参,给指针所在地址赋值问题
- 由“一个关于指针的小问题”想到的:常量指针与指向常量的指针
- 指针数组和行指针作为形参时的区别
- C语言指针作为形参的一些问题
- C++引用&和指针在作为形参时的区别
- 二维数组 指针 形参 用一个关系图解决问题
- 函数中的形参问题(指针形参、引用形参、二重指针作为形参)
- 指针和引用作为形参传递下去的区别
- 一个函数的指针的困惑-----int (fun)()作为函数形参
- C++引用&和指针在作为形参时的区别
- C语言指针作为形参的一些问题
- 输入一个字符串,将其中连续的数字作为一个整数,一次存放到另一个整型数组,设计一个函数,把指向字符串的指针和指向整数的指针作为函数形参
- 未处理的“System.NullReferenceException”类型的异常。指针作为形参初始化问题
- 指针作为形参进行传递注意事项
- 指针作为函数形参的思考