c 一维数组传参

分类:函数知识网浏览量:1396发布于:2021-05-19 01:40:36

嗯,一般传递数组是这样的:int a[3]={1,2,3}; //定义数组 void fun(int [],int length); //申明函数,第一个参数是数组头地址,第二个参数是数组长度 fun(a,sizeof(a)/sizeof(int)) ; //调用函数,a为数组头地址,sizeof()获取字节数.所以你的程序有点解释不清,呵呵~~~还是按照一般的规范来编程会好点.具体点你的程序应该是这样的:x(int [ ], int length){ } main() {int a[10]; x(a,sizeof(a)/sizeof(int)); }

1、数组做参数,完全无法按值传递.这是由c/c++函数的实现机制决定的.2、传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址.下面三种函数声明完全等同:void func(int array[10]) void func(int array[]) void func(int *array)

一维可以直接写成void fun(char a[]);二维则需要写出第二维的大小void fun(char a[][5]);在这2中声明中,都可以写完整的维数void fun(char a[3]);void fun(char a[2][5]);

数组只是传递地址过去,所以void fun(a[4]);不对,这里只是传递了a[4]这个数据过去了,还是越界的

将aaa传递给str[0] bbb传递给str[1] ccc 传递给str[2]

再定义一个指针变量,让他赋值数组名,把指针传给test函数应该可以

#include <stdio.h>void f(int a[]){ a[0] = 1; a[1] = 2;}int main(){ int a[2] = {0, 1}; printf("a[0] = %d a[1] = %d\n", a[0], a[1]); f(a); printf(" a[0] = %d a[1] = %d\n", a[0], a[1]);}

可以传递二维数组作为参数,有两种方法, 方法一change(int **a)直接传递一个指针进去 方法二change(int a[][10])数组的第二维维度一定要显式指定 假如主函数有一个二维数组int a[10][18]; 写一个函数要传递二维数组,函数原型应该是这个样子 void f(int (*)a[18]); 或者 void f(int a[][18]) 必须确定第二维长度是多少

最简便的方法就是使用指针,定义同类型的指针指向数组的起始位置,接下来使用*++或者*+n来操作 例如:char arry【5】;char *ch = &arry【0】;for (int i = 0; i < 5; i++) { cout << ch++;} for (int i = 0; i < 5; i++) { cout << ch + i; }

不是写法的问题,可能你对数组的具体含义还不太清楚哈.一个一维数组的数组名是 (char board[][3]){printf("%c",board[0][0]);}也可以这样申明(或定义):static void