嵌入式笔记day11

文章探讨了如何使用一维指针表示二维数组,强调了不能直接使用`int*p=a`,而应使用`int*p=&a[0][0]`。此外,还介绍了行指针的概念以及字符串在C语言中的处理,字符指针用于存储字符串首地址,初始化时不应修改指向的存储空间。
摘要由CSDN通过智能技术生成

指针与二维数组

  1. 用1维指针表示2维数组

  2. 二维数组不可直接使用 int *p = a, 只能使用 int *p = &a[0][0],或者换成:int *p = (int *)a
    原因如下:假设有数组int a[3][2],若将二维数组a[3][2]当作一维数组a[3],a指向a[0],a == &a[0],其偏移量为a[0][0]+a[0][1](2个int),需要强转偏移量

  3. a[i][j],换算为个数a[i*(j+1)+j]

  4. int a[3]
    int (*p)[3] = &a;
    创建变量p,右看左看
    int a[2][3]; int(*p)[3] = &a;
    行指针:一个指向一维数组的指针(但用于二维数组)

字符串

  1. C语言通过使用char数据类型的数组来处理字符串
    在字符数组中,每个数组袁术都是char数据类型的变量。通常,我们把char数据类型的指针变量成为字符指针变量。字符指针变量与字符数组有着密切关系,它也被用来处理字符串
  2. 在程序中初始化字符指针是把内存中字符串的首地址赋予指针,并不是把该字符串复制到指针中。另外,向字符指针付给一个字符串常量时,指针应该指向一个存储空间。
  3. 在C编程中,当一个字符指针初始化为指向一个字符串常量时,不能对字符指针变量的目标赋值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值