利用指针解决有关方法函数中数字,数组,以及字符串的调用(方法函数中不同类型参量的调用)
2019-08-08 21:12
302 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43702096/article/details/98884975
首先我们要先区分实参和形参,其实简单来说实参就是自己,而形参就是克隆的自己。另外形参变量只有在被调用时才分配内存单元,在调用结束时,就会释放出所分配的内存单元。所以,形参只能在函数内部才有效。
一、数字型&,这里我们以int举例。
典型的a,b交换问题:
按照我们以前所学的,很快想到关键代码是:
int t=a; a=b; b=t;
但是如果将其我们放入方法中使用呢?如下:
#include<iostream> using namespace std; void swap(int a,int b) { int t=a; a=b; b=t;} int main() { int a=1,b=2; swap(a,b); cout<<a<<b; return 0; }
结果还是a=1,b=2。ying’wa和b并没有交换,这里就是因为我们只是把a和b的形参传了过去,但是其自身并没有参与交换。
正确的方法有两种:
第一种:
#include<iostream> using namespace std; void swap(int &a,int &b) { int t=a; a=b; b=t;} int main() { int a=1,b=2; swap(a,b); cout<<a<<b; return 0; }
第二种:
#include<iostream> using namespace std; void swap(int *a,int *b) { int t=*a; *a=*b; *b=t; } int main() { int a=1,b=2; swap(&a,&b); cout<<a<<b; return 0; }
二、数组*,利用指针将数组的首地址传入函数中:
#include<iostream> using namespace std; void fun(int *a) { a[2]=2; } int main() { int a[]={1,2,3}; cout<<"调用函数前:"<<endl; for(int i=0;i<3;i++) cout<<a[i]<<endl; cout<<"调用函数后:"<<endl; fun(a); for(int i=0;i<3;i++) cout<<a[i]<<endl; }
三、字符串&,利用地址传递:
#include<iostream> #include<string> using namespace std; string fun(string &a) { a="c++"; return a; } int main() { string a; cin>>a; cout<<"调用函数前:"<<endl; cout<<a<<endl; fun(a); cout<<"调用函数后:"<<endl; cout<<a<<endl; return 0; }
相关文章推荐
- 数组与字符串、字符指针与其他类型指针、赋值参数、指针参数以及引用参数、函数指针
- python调用C动态库导出函数的返回值为指针类型时,在64位python环境下被截断解决方法
- Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法
- 1.如何避免野指针2.获取字符串的两种方法。以及malloc,calloc,ralloc的使用注意点3.二维三维数组4.数组和函数的区别
- 详解Swift中对C语言接口缓存的使用以及数组与字符串转为指针类型的方法
- 合并并且排序指针数组和二维数组里面存放的字符串用函数调用的格式
- JavaScript基础(基本语法:变量、语句、数组、函数、对象、全局方法以及js与java不同,js与html关联)
- 第十七周 利用指针和数组的方法分别查询字符串的个数
- 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
- int类型转换成字符串和字符串转换成int类型以及在MFC静态文本框显示数字的方式方法
- 有关结构体指针与函数传参返回值类型的六种方法
- 我们现在有一些数据,是整数和字符串混杂的。现在需要你将他们分开,并且分别进行排序。 请你利用泛型实现一个数组类,并且实现排序函数,使得其既可以对Integer类型进行排序,又可以对String类型进
- strcat,strcpy,strcmp,strlen4个常用字符串处理函数的数组与指针简单实现方法~
- java梳理-给一个字符串类型的数字,不调用java直接转的API写一个方法转换出来
- 数据类型(基本内置类型)——指针和指针孩子(指针变量(指针类型)、数组(构造类型)、字符串、函数指针、空指针等)
- 输入一个字符串,将其中连续的数字作为一个整数,一次存放到另一个整型数组,设计一个函数,把指向字符串的指针和指向整数的指针作为函数形参
- 【转】C++编程中用指针直接调用类成员函数问题及其解决方法
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- 数组方法关于任意数字类型的数组求最大值解决办法
- QT 自定义信号与信号槽方法及解决自定义数据类型或数组作为函数参数的问题