【第一篇博客】记录学习记录

关注互联网技术岗位校园招聘
数据结构、算法、计算机网络、操作系统
c/java从表层到底层
leetcode每日一题
思维
 

学习内容(简记)

(一)写博客

参考

(41条消息) 【小白】如何写好自己的一篇CSDN博客(美化1)_cungudafa的博客-CSDN博客_csdn博客怎么写博文

(二)数组传参

1.一维数组

(1)传数组(test(arr))函数处理(int test(int a[]))不改变原数组值

(2)创建指针指向数组(int arr[5] ,*p; p=arr;)

传数组指针(test(*p))函数处理(int test(int *p))会改变原数组值

2.二维数组 创建arr[5][6] n=5 m=6

(1)传数组(test(arr)) 函数(int test(int a[][5]))列不可省略

函数处理不改变原数组值

(2)传数组指针(test(*p)) 函数(int test(int *p)),传输后转为一维数组

函数处理会改变原数组值

(3)传数组指针(test((int *)arr))函数(int test(int *p))

  1. (int *)a是表示把a强制转换成一个int型的指针。a里面存着数组的首地址

  2. 如果以前a是char型,编译器会认为a指向的那一个字节的内存单元是a里面的东西

  3. 由于数组里面存放的数据为int型,把a转换成int型,编译器会认为a指向的连续四个字节里的东西都是a里面的。

引用例:

  for(int i = 0; i < m; i++){
     for(int j = 0; j < n; j++){
     printf("%d ",*(p+n*i+j));
     }
  }

传数组指针( test((int **)arr)) ) 函数(int test(int **p))

引用例:

    for(i = 0; i < 5; i++){
		for(j = 0; j < 6; j++){
			printf("%d ",*((int *)p+6*i+j));
              //int *p指向arr[0][0]+6*i指向第几行+j指向第几列
		}
	}

参考

(41条消息) C语言数组当参数传递_Laoynice的博客-CSDN博客_c语言传递数组

回顾知识

数组传参不能在自定义函数中计算数组大小(即个数(sizeof(arr)/arr[0])),所以要用原数组计算后传参过去

有时候可以尽量不用数组、不用创建变量,节省存储空间。

例如:简单计算结果不需要开辟许多空间,直接使用算式代替。

未知存储具体大小的数组(arr[10000000])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值