C语言函数参数传递的两种方式:值传递和引用传递(包括整型变量和字符串变量) |
您所在的位置:网站首页 › c语言使用另一个函数的变量是什么 › C语言函数参数传递的两种方式:值传递和引用传递(包括整型变量和字符串变量) |
C语言函数参数传递的两种方式:值传递和引用传递
1 值传递1.1 实实在在的值传递1.2 指针传递
2 引用传递3 字符串变量的函数传递与指针传递3.1 错误示范3.2 正确姿势
参考
1 值传递
值传递包括实实在在的值传递和指针传递,指针传递参数本质上是值传递的方式,它所传递的是一个地址值,传递的都是实参的一个拷贝。 1.1 实实在在的值传递 #include #include using namespace std; void function(int num){ //改变num的值 num = 100; } int main() { int number; number = 1; function(number); cout int number; number = 1; function(&number); cout int number; number = 1; function(number); cout char* s = "123456"; func(s); puts(s); return 0; } /* 本来想通过func函数改变s的值,结果并没有改变,还是输出123456 */因为以前值传递和指针传递时用的例子是整型变量,指针传递时用一级指针就可以通过函数改变主函数中的变量的值。 换成字符串变量,咋一看也是一级指针。 但是你要明白: 字符串指针的定义是什么? char* s; char* 本来就仅仅是一个字符串指针变量的类型! s存的是一个字符串的首地址值,所以你要通过函数改变字符串指针变量的值,就得用char**二级指针! 3.2 正确姿势 #include #include #include void func(char **dst) { char *buf = (char *) malloc(20); memset(buf, 0, 20); strcpy(buf, "hello world!"); *dst = buf; //puts(dst); } int main() { char *s = "123456"; func(&s); puts(s); return 0; } 参考 https://blog.csdn.net/qq_28584889/article/details/83307592https://blog.csdn.net/qq_28584889/article/details/93789577 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |