指针与函数参数

---恢复内容开始---

关于C语言函数参数。

数组作为参数的时候,改变的原来的数组;数组当做参数的时候,传递的是指针,数组数据拷贝非常浪费内存,,c语言的编译器,数组当做参数的时候,传递的是指针

,除了数组以外,都是副本机制,新建一个变量复制。

 

#include <stdio.h>
#include <stdlib.h>

void go(int a[10])//数组作为参数的时候,改变的原来的数组
//数组当做参数的时候,传递的是指针
//数组数据拷贝非常浪费内存,
//c语言的编译器,数组当做参数的时候,传递的是指针
// 除了数组以外,都是副本机制,新建一个变量复制。
{
    int i;
    printf("\ngo=%d",sizeof(a));
    for ( i = 0; i<10; i++)
    {
       a[i] = 10 - i ;
    }

}


//数组名如果作为参数引用,就是指针的大小,32位4个字节
//如果作为非参数,就是整个数组大小

void goA(int a[10])
{
    int b[10]={1,2,3,4,5,6,7,8,9,0};
    printf("\na=%d,b=%d",sizeof(a),sizeof(b));
}
void main()
{
int i = 0;
int a[10]={1,2,3,4,5,6,7,8,9,0};
printf("\nmain= %d",sizeof(a));

go(a);

for (; i<10; i++)
    {
       printf("\na[%d]=%d",i,a[i]);

    }
 goA(a);


}

运行结果:

---恢复内容结束---

关于C语言函数参数。

数组作为参数的时候,改变的原来的数组;数组当做参数的时候,传递的是指针,数组数据拷贝非常浪费内存,,c语言的编译器,数组当做参数的时候,传递的是指针

,除了数组以外,都是副本机制,新建一个变量复制。

 

#include <stdio.h>
#include <stdlib.h>

void go(int a[10])//数组作为参数的时候,改变的原来的数组
//数组当做参数的时候,传递的是指针
//数组数据拷贝非常浪费内存,
//c语言的编译器,数组当做参数的时候,传递的是指针
// 除了数组以外,都是副本机制,新建一个变量复制。
{
    int i;
    printf("\ngo=%d",sizeof(a));
    for ( i = 0; i<10; i++)
    {
       a[i] = 10 - i ;
    }

}


//数组名如果作为参数引用,就是指针的大小,32位4个字节
//如果作为非参数,就是整个数组大小

void goA(int a[10])
{
    int b[10]={1,2,3,4,5,6,7,8,9,0};
    printf("\na=%d,b=%d",sizeof(a),sizeof(b));
}
void main()
{
int i = 0;
int a[10]={1,2,3,4,5,6,7,8,9,0};
printf("\nmain= %d",sizeof(a));

go(a);

for (; i<10; i++)
    {
       printf("\na[%d]=%d",i,a[i]);

    }
 goA(a);


}

运行结果:

main=40
go=4
a[0]=10
a[1]=9
a[2]=8
a[3]=7
a[4]=6
a[5]=5
a[6]=4
a[7]=3
a[8]=2
a[9]=1
a=4,b=40 请按任意键继续...

posted @ 2018-08-18 20:27  WHyichao  阅读(61)  评论(0)    收藏  举报