数组、指针数组、结构体数组传递地址

本文探讨了在函数调用中如何传递数组、指针数组和结构体数组的地址。核心观点是,当传入数组的地址时,实际上传递的是数组的首地址。例如,对于指针数组,形参可以定义为`char *strs[]`,同样适用于结构体数组。详细解析可在参考链接中找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论点:指针数组给函数传地址传入的是数组首地址strs,函数定义形参时,因为strs指针数组类型为 char *[],所以自定义函数形参可以写成char *strs[];同理带入结构体数组进行体会。

	#include <stdio.h>
	#include <string.h>
	
	typedef struct student stu;
	struct student {
	        int id;
	        char name[128];
	};
	void change(char *strs[]){
	        strs[0] = "paaa";
	        strs[1] = "pbbb";
	        strs[2] = "cpcc";
	        strs[3] = "ddxd";
	}
	void change1(stu *num){
	        num->id = 1;
	        strcpy(num->name , "lilei");
	}
	void change2(stu num[]){
	        num[0].id = 11;
	        strcpy(num[0].name , "zk-lilei");
	}
	int main()
	{
	        stu num={0};
	        stu num1[1]={0};
	        char *strs[4];
	        int i;
	        strs[0] = "aaa";
	        strs[1] = "bbb";
	        strs[2] = "ccc";
	        strs[3] = "ddd";
	        for(i=0;i<4;i++){
	                printf("%s\n",strs[i]);
	        }
	        
	        change(strs);
	        change1(&num);
	        change2(num1);
	        
	                pri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值