关于函数传值和传址问题
我还是不懂额,我把结构体放最上面了,为什么进入函数里面结构体都有值,但是出去全空了,此为代码
cars3.h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "utils.h"
//#include "array_list.h"
#define MAX_CARS 20
typedef struct car
{
int year;
char make[25];
char model[25];
char style[25];
char color[20];
char mileage[8];
char air_condition;
char inventory_num[16];
double price;
char previous_owner[30];
} Car;
typedef struct carlist
{
Car elements[MAX_CARS];
int last;
} Carlist;
开头 cars3.c
#include"cars3.h" //里面有结构体
Car Car1[100];
Carlist l;
int main {
...
while(Car1[addcount].year!=NULL)
{
al_add(Car1,l);
addcount++;
}
...
}
为什么 al_add的函数 一出来就没有了呢
[解决办法]
在这个函数内,全局变量l和函数输入参数中的局部变量l同时生效,前者被隐藏,后面的所有操作都是对局部变量l操作,函数退出时局部变量销毁,就这样