sna*_*121 0 c variables pointers function
所以这是代码 - 我知道一些简单的错误,但我似乎无法弄明白.我已经尝试了不同的数字类型,指针和其他ish ......变量b并且c在函数中具有正确的值separate()- 但是当它们被传递给main()它们时它们会出现b = 0和c = -471211(或类似的东西)....
我错过了什么?这是代码:
#include <stdio.h>
void separate(int a, int b, int c){
b = a/12;
c = a%12; }
int main(){
int a = 100
int b, c;
separate(a, b, c);
printf("%i = 12 * %i + %i \n", a, b, c);
Run Code Online (Sandbox Code Playgroud)
小智 5
在C中,所有函数参数都按值传递.因此,修改参数在函数之外没有任何影响.如果要修改函数的参数,则必须将指针传递给它:
void change_arg(int *arg)
{
*arg = 42;
}
int arg = 1337;
printf("Before: %d\n", arg);
change_arg(&arg);
printf("Afer: %d\n", arg);
Run Code Online (Sandbox Code Playgroud)