指针
来源:互联网 发布:下载幻灯片软件 编辑:程序博客网 时间:2024/06/10 13:37
#include<stdio.h>
void
Try_change(
int
*p)
{
int
b=7;
p=&b;
}
int
main()
{
int
*p=NULL;
int
a=5;
p=&a;
Try_change(p);
printf
(
"%d\n"
,*p);
return
0;
}
通过指针传递参数,其实质仍然是值传递,即是传递指针本身的地址。或者这样说更容易理解一些,即在Try_change中操作的形参,它不会改变实参的值,因此答案依然是5.
或者可以这样形象理解,形参是进入一个参数的时候临时克隆实参的一个家伙,这个家伙继承了实参的所有值,然而他和实参却是两个不同的家伙,Try_change函数内所有发生的行为只和形参有关,当函数结束的时候形参就会灰飞烟灭。而它所做的一切实参是没有丝毫影响的。
void
GetMemory(
char
* p)
{
char
*p =
new
char
[100];
}
void
main()
{
char
*str;
GetMemory(str);
strcpy
(str,
"hi"
);
// str = NULL
}
在例如,使用形参分配内存的例子,也是显而易见的错误:
想要在自定义函数里改变主函数的指针,有两种方法:
1,函数指针的指针
2,返回指针 在主函数对指针进行重新赋值
阅读全文
0 0
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 程序员成长计划
- JAVA之正则表达式
- Python学习(7)、函数调用
- scikit-learn决策树学习
- 中文分词技术介绍
- 指针
- |BZOJ 4196|树链剖分|线段树|[Noi2015]软件包管理器
- 2017.5.18-24 基站选址 失败总结
- Android开发之palette的使用(安卓调色板)
- 希尔排序的实现
- HDU 1025 Constructing Roads In JGShining's Kingdom(最长递增子序列)
- 恶补前端知识之——CSS(一)
- 开源NLP工具(包括分词工具)
- [leetcode]: 202. Happy Number