结构体参数的传递以及如何修改指针参数的值
2010-09-12 04:44
232 查看
1. 我们在看代码的时候,会注意到,如果函数的参数需要结构体的时候,一般是传递结构体指针,而不是传递结构体,这一点在Windows API中几乎都是如此,凡是用到结构体的地方,都是用它的指针来做参数的,这是什么原因呢?最近发现,如果直接传结构体,编译器会把结构体的各个成员都一一压栈,而如果传递的是结构体指针的话,则只压一个结构体的指针就可以了,大为简洁
2. 有这样一个函数
问,在这个函数执行完,返回之后,p的值会被改变吗?
答案是否,因为我们传递指针的目的是为了修改指针指向的地址的值,而不是指针的值,
那么,如果想在函数里修改指针的值该怎么做?对了,只要把指向指针的指针传进来就可以了
如下
2. 有这样一个函数
void foo(char* p) { p++; }
问,在这个函数执行完,返回之后,p的值会被改变吗?
答案是否,因为我们传递指针的目的是为了修改指针指向的地址的值,而不是指针的值,
那么,如果想在函数里修改指针的值该怎么做?对了,只要把指向指针的指针传进来就可以了
如下
void foo(char** p) { *p++; } foo(&pointer);
相关文章推荐
- 结构体参数的传递以及如何修改指针参数的值
- 如何传递指向结构数组的指针 (函数参数)
- 【c++】指针参数是如何传递内存的
- 指针参数是如何传递内存的
- Matlab中guidata()的用法以及如何帮助参数在GUI间传递
- 指针参数是如何传递内存的?
- 指针参数是如何传递内存的?
- 指针参数如何传递内存(写的很好)
- c/c++中指针参数如何传递内存
- PB 如何把结构作为参数传递
- c/c++中指针参数如何传递内存
- Mybatis深入-如何使用传递不同类型的参数(以及等量替换符号的使用)
- 【c++】指针参数是如何传递内存的
- 指针参数是如何传递内存的?
- ReportView如何使用构造SQL语句带参数的存储过程创建报表以及为rdlc传递参数
- 理解C#中参数的值和引用以及传递结构和类引用的区别
- c/c++中指针参数如何传递内存
- 结构体指针作为函数参数传递却无法传值的有关问题
- 指针参数是如何传递内存的? (C++ 高质量)
- c/c++中指针参数如何传递内存!