7.C语言中一维数组和二维数组的指针区别

Pre:在c语言中a和a[0]和a[0][0]地址是一致的

1.二维数组

a = 

[

    [0,1,2,3,4],

    [4,5,6,7,8],

    [8,9,10,11,12],

    [12,13,14,15]

]

 二维数组取第一层,取得是里边元素的地址;

再取一层取到的才是内容

eg:

*a取到的是a[0]的地址,也就是a[0][0]的地址

*(a+1)取到的是a[1][0]的地址

**a取到的是a[0][0]的值

2.一维数组

b = [

1,2,3

]

但是如果是一维数组直接*b取的就直接是第一个元素的值

*b = 1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言二维数组指针数组都可以用来存储多个数据。但是它们有着不同的特点和用途。 1. 二维数组 二维数组是一个有着两个维度的数组,每个维度可以存储多个数据。它可以用来存储表格形式的数据,比如矩阵、棋盘等。 二维数组的声明方式为:`type name[row][column]`,其type表示数据类型,name表示数组名,row和column表示数组的行数和列数。 例如,下面是一个3行4列的二维整型数组的声明: ``` int arr[3][4]; ``` 可以通过下标访问二维数组的元素,例如: ``` arr[0][0] = 1; arr[1][2] = 3; ``` 二维数组的优点是可以方便地存储二维数据,并且访问速度较快。缺点是在传递到函数时,需要指定数组的行数和列数,不够灵活。 2. 指针数组 指针数组是一个数组,其每个元素都是一个指针。它可以用来存储多个字符串或多个指向不同类型数据的指针指针数组的声明方式为:`type *name[length]`,其type表示指针指向的数据类型,name表示数组名,length表示数组的长度。 例如,下面是一个存储3个字符串的指针数组的声明: ``` char *strArr[3] = {"hello", "world", "!"}; ``` 可以通过下标访问指针数组的元素,例如: ``` printf("%s\n", strArr[0]); ``` 指针数组的优点是可以存储不同类型的数据,传递到函数时,只需要传递指针数组的名字,不需要指定数组长度,更加灵活。缺点是访问速度相对较慢,需要多次间接寻址。 总的来说,二维数组适合存储表格形式的数据,而指针数组适合存储不同类型的数据。选择使用哪种方式,需要根据具体需要来决定。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值