一定指针c 函数的输入是指针怎么改成一堆指针c 函数的输入是指针就是输入数组

如何利用 指针 在函数中 修改传入数组 的值?【c++吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:303,673贴子:
如何利用 指针 在函数中 修改传入数组 的值?收藏
想写一个add(数组,i)的函数使传入的数组中每一个都加上iint f[5]={1,1,1,1,1};void add(int (*s)[5],int i){
for(int a=0;a&5;a++)(*s)[a]+=i;}int main(){
add(&f,2);我这样写的 感觉挺别扭不知道这样对不对另外问一下int *p;*p=a;和p=&a;有什么不同
c++,博为峰软件培训免费试听,0元入学,签署就业保障协议,不就业不收费!博为峰,真正的为年轻人服务的企业,14年间培训15万余名软件工程师,成绩斐然!
第一个问题我也很想知道的说……*p=a的话指向的位置不一定是a啊,只是改变了值而已,第二个不就直接指向了a了么……求指导
那个禽兽在我LS表示压力山大……
*p是a的值 p=&a是把a的地址赋给指针
是不是这个意思:#include &iostream&using std::using std::int f[5]={1,1,1,1,1};void add(int s[],int i){for(int a=0;a&5;a++)s[a]+=i;}int main(){cout && "Before:\n";for (int i = 0; i != 5; ++i)cout && "f[" && i && "] = " && f[i] &&add(f, 2);cout && "After:\n";for (int i = 0; i != 5; ++i)cout && "f[" && i && "] = " && f[i] &&return 0;}
int f[5]={1,1,1,1,1};void add(int array[],int i){for(int a=0;a&5;a++)array[a]+=i;}int main(){add(f,2);
画蛇添足,当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
LZ看看这个写法#include &iostream&void add(int *s,int lenth){
for(int i=0;i&i++){
*(s+i)=*(s+i)+i;}}int main(){int f[5]={1,1,1,1,1};add(f,5); return 0;}传数组可以直接传,f就相当于数组的首地址,用指针接受,S就指向了数组的首地址,对地址操作就可以直接改变地址上的值,而不是值传递,上面代码我没运行,LZ可以运行下!
登录百度帐号没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!C 语言中指针数组和数组指针、函数指针、指向函数的指针等等该怎么理解? - 知乎259被浏览<strong class="NumberBoard-itemValue" title="3分享邀请回答11714 条评论分享收藏感谢收起1910 条评论分享收藏感谢收起用C语言如何使函数返回值为指向一维数组的指针?_百度知道
用C语言如何使函数返回值为指向一维数组的指针?
如果想在主函数中输出自定义函数中定义的数组,怎么实现?是不是要在自定义函数中把数组定义为静态存储?使函数返回值为指向指针的指针又如何实现?谢谢高手!!
我有更好的答案
  子函数中定义的一般指针变量,在子函数结束之后会被自动释放,如果返回这种局部指针变量,调用者一般是不能正确读到指针地址中的数据的。  因此,如果想在主函数中输出自定义函数中定义的数组,就要在自定义函数中把数组定义为静态数组,然后返回数组名即可。  静态变量的生命周期是整个程序的生命期,从定义开始,直到程序结束,才会被释放。参考代码:#include&&stdio.h&char&*get_str(void)&//返回值类型为字符指针{&&&&static&char&str[100]={0};//静态变量初始化,只有在定义时这次完成,且初始化只执行一次。&&&&sprintf(str,&hello&world&);&&&&return&str&;}void&main(){&&&&char&*p;&&&&p=get_str();&&&&printf(&%s\n&,&p&);}
采纳率:75%
来自团队:
int* pi(){ static int a[] = {1}; int* p = }指向指针的指针 不还是一个指针吗,指针是怎么返回的就怎么返回
本回答被提问者采纳
函数的返回值由函数的定义决定要使函数返回一个指针,那么在函数定义时应规定返回值为指针,这样可使函数返回一个指针要是函数返回的指针为指向一维数组,那么在函数运行过程中应使指针指向数组,这样在返回时就可以让函数返回一个指向一维数组的指针,但还需注意这个一维数组的内存在函数运行完后是否释放这一问题
数组传递的时候一般都是直接传递数组的首地址,所以,你直接返回数组的首地址就可以了。比如下面的代码:int a[5];......return a
int (*func())[3]
//fun是一个函数,函数返回一个指针,指针指向一个数组,这个数组有三个int型的整数。需要在子函数中使用malloc函数给这个指针分配内存。
1条折叠回答
其他2条回答
为您推荐:
其他类似问题
返回值的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 指针函数输入三个是谁 的文章

 

随机推荐