本文目录一览:
- 1、关于c语言数据结构中栈的初始化函数传递参数的问题
- 2、C语言命令行如何传参
- 3、严老师的数据结构(C语言)中,函数的参数显示传递是什么意思?我刚刚学习这本书
- 4、C语言自定义函数怎么传参,是一次性把数组的数据全部传入吗?
关于c语言数据结构中栈的初始化函数传递参数的问题
1、通过函数的参数显示传递:
a(int
a)
{
a
=
a+2;
}
b(void)
{
int
b
=
3;
a(b);
}
在函数a中a作为一个参数传入函数中进行运算,那么a就可以算作是a的输入,然后在程序内部a进行了运算后值变了,那么运算后的a又算作是a函数的输出。
2、通过全局变量隐式传递:
全局变量你应该知道吧,简单点说就是作用域涵盖整个程序的变量(当然要看具体情况)。
假设a为int型全局变量,初始值为1:int
a
=
1;
a()
{
a
=
a
+
2;
}
b()
{
a
=
a
+
3;
}
main()
{
a();
b();
a();
}
通过main函数我们可以看到,程序首先执行的是函数a,那么执行完函数a后全局变量a的值由初始值1变成了3,然后又继续执行函数b,注意此时函数b也是对a进行运算,那么此时全局变量a成了b的输入,运算后a的值为了6,此时a为b的输出。那么也就是说全局变量a在经过a函数的改变后作为一个输入隐式的传入了b函数,然后经过b函数的运算又算作是b的输出。执行过b函数后程序又遇到了a函数,那么此时经过b函数运算的a又作为a函数的一个输入了。
C语言命令行如何传参
用main()函数的参数就可以将外部数据传给程序了!
例如:
//////////////////////////////
#include stdio.h
#include stdlib.h
int main(int argc, char* argv[])
{
int i;
if (argc1) {
system("cls");
for (i=1; i argc; i++)
printf("%s ",argv[i]);
}
return 0;
}
return 0;
}
///////////////////////////////////////////
上面的程序生成的可执行文件为C:\\PG.EXE
则在命令提示符下输入 回车即可在屏幕上输出5。
****************************************************
argc就是参数的数量,由于第一个参数是程序名及路径自身,所以实际上传递到程序的参数数量是argc-1,数组argv中的第一个元素(即argv[0]是程序名及路径自身,例如上面的“ C:\\pg 5”则argc==2,argv[0]=="C:\\pg")
严老师的数据结构(C语言)中,函数的参数显示传递是什么意思?我刚刚学习这本书
1、通过函数的参数显示传递:
A(int a)
{
a = a+2;
}
B(void)
{
int b = 3;
A(b);
}
在函数A中a作为一个参数传入函数中进行运算,那么a就可以算作是A的输入,然后在程序内部a进行了运算后值变了,那么运算后的a又算作是A函数的输出。
2、通过全局变量隐式传递:
全局变量你应该知道吧,简单点说就是作用域涵盖整个程序的变量(当然要看具体情况)。
假设a为int型全局变量,初始值为1:int a = 1;
A()
{
a = a + 2;
}
B()
{
a = a + 3;
}
main()
{
A();
B();
A();
}
通过main函数我们可以看到,程序首先执行的是函数A,那么执行完函数A后全局变量a的值由初始值1变成了3,然后又继续执行函数B,注意此时函数B也是对a进行运算,那么此时全局变量a成了B的输入,运算后a的值为了6,此时a为B的输出。那么也就是说全局变量a在经过A函数的改变后作为一个输入隐式的传入了B函数,然后经过B函数的运算又算作是B的输出。执行过B函数后程序又遇到了A函数,那么此时经过B函数运算的a又作为A函数的一个输入了。
C语言自定义函数怎么传参,是一次性把数组的数据全部传入吗?
1、因为数组在内存中是一块连续的内存,只要将该数组的首地址传进去,当然就可以访问整个数组了。值得注意的是,由于只传了首地址,函数不知道数组的维数,所以还得把数组的维数传进去,那就可以完全操作该数组了。
2、例:有一个函数声明:void fun( int aa[],int size );或者void fun( int *pa,int size );
以上两种声明都一样。
调用上诉函数时:假设有 int ab[10];
fun( ab,10 )就可以了。