c语言在函数里给参数赋值 c语言怎么给函数赋值

C语言 main函数形参 赋值问题main函数可以带形参,
【c语言在函数里给参数赋值 c语言怎么给函数赋值】形参名字随便,比如你可以叫main(int amao, char **agou),这没问题,但形参的数量类型以及顺序是固定的 。
传给形参的值只能由命令行中得到
即使带形式参数,也不一定有大于1个参数,参照上一条,个数和值都是由命令行决定的
36:
A 相当于i = i
B 语句非法 , 指针不能用乘法运算 , 看起来是输入错了,应该是*p = *j; 如果是这样的话 , B就是答案,*p = xx , 相当于i=xx,*j,*和是逆运算抵消,相当于*p = j;
C 指针赋值给整形,错误
D 一级指针,取两次*,错误 。
C语言中输入函数赋值?n = scanf("%d",n);
这一句有问题
1. scanf 函数是有返回值的c语言在函数里给参数赋值 , 它的返回值可以分成三种情况
1) 正整数c语言在函数里给参数赋值,表示正确输入参数的个数 。
例如执行 scanf(“%d %d”, a, b);
如果用户输入”3 4” , 可以正确输入,返回2(正确输入了两个变量);
如果用户输入”3,4”,可以正确输入a , 无法输入b,返回1(正确输入了一个变量) 。
2) 0 , 表示用户的输入不匹配,无法正确输入任何值 。如上例 , 用户如果输入”,3 4”,返回0 。
3) EOF,这是在 stdio.h 里面定义的常量(通常值为-1) , 表示输入流已经结束 。在Windows下,用户按下CTRL Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL D表示输入结束 。
你这个输入一个返回值就是1,因此n也会一直等于一
c语言中可不可以直接在函数首部直接给参数赋值不明白你的意思……是不是类似于这样 int hello(char a,int i = 4,int m = 9){}?
这样在c语言中是不可以的 , 这是c的概念,默认参数,使用方法如下:以上面的hello函数为例
hello(n);默认i=4,m=9 。hello(n,5,23); 这里在函数中i = 5,m = 23.
就是说,如果调用时给参数赋值了,就使用赋值的,如果没有 , 就使用默认的
需要标明一点,这种函数参数表有个规则,就是所有的默认参数都靠后,即:int hello(int a = 1,int b,int c=23){} 是错误的……而且,使用时,也不可以跳过一个默认值给后面的值赋值,如:
int hello(char a,int b= 12,char c = 'd')如果想参数b使用默认而给c赋值,那么必须是hello(a,12,c),如果跳过赋值b,即:hello(a,c);就是错的 , 很好理解,这样就把c赋值给参数b了,一定报错 。
c语言:一个空数组作为型参,如何在函数中对其赋值?数组作为参数是按地址传递的 数组名就是数组的首地址 。因此在数组名作函数参数时所进行的传送只是地址的传送c语言在函数里给参数赋值,也就是说把实参数组的首地址赋予形参数组名 。形参数组名取得该首地址之后c语言在函数里给参数赋值,也就等于有了实在的数组 。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间 。
c语言关于函数为参数赋值的问题void bar(int p) 是拷贝传递,函数内部的p与外面传入的j只是值相同,并不是同一个内存空间 , 你在函数内部赋值其实一点作用都没有 。
void fun(int *p) 传递的是指针,你也可以连接是拷贝传递 , 但传递的是指针,所以在里面对*p操作就是于直接对传入的j的内存空间进行操作 。
C中可以改成 void bar(int p) 其他不用改,引用传递 , 这样就可以修改外面传入的数据了 。
关于c语言在函数里给参数赋值和c语言怎么给函数赋值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读