Ⅰ c语言数组的地址传递和值传递
1.值传递就不写了,顾名思义就是把当前的值传到下一个函数中,变量本身的没有发生任何变化
2.指针传递,把当前变量指针传到下一个函数,在另外函数里边修改指针的值会修改当前变量值
#include <stdio.h>
void func(int *p){
*p = 9;
return;
}
void swap(int *a, int *b){ //交换两个变量的值
int temp = *a;
*a = *b;
*b = temp;
}
int main(void){
int a = 0;
func(&a); //要修改一个变量,把他的地址传过去
printf("%d",a);//9
int b = 3;int c = 4;
swap(&b,&c);
return 0;
}
Ⅱ C语言中如何用gets();语句来接收一个二维数组
gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘ ’空字符,并由此来结束字符串。
因为gets函数是以换行符为分隔,所以用一层循环即可读取一个二维数组。对于每行字符串,使用sscanf读取每个数。
例如:
chars[100];
inta[3][3],i;for(i=0;i<3;i++){
gets(s);
sscanf(s,"%d%d%d",s[i],s[i]+1,s[i]+2);
}
Ⅲ 请教c语言中形参是数组名这个数组名是地址常量那么怎么接收实参数组名
实参是数组名,即一个地址,形参是数组名,所接收的同样是一个地址,就是所谓的传址调用。靠传递地址来实现对参数的调用。