C语言中的问题 新人麻烦详细说明一下?

我先说一下我的理解如果知道a是数组了1.那么a是不是可以直接表示为a[0]的地址2.如果要取a[1]的地址a+1是否要写成&(a+1)3.*又是怎么样使用... 我先说一下 我的 理解 如果知道a是数组了 1.那么a是不是可以直接表示为a[0]的地址 2.如果要取a[1]的地址 a+1是否要写成&(a+1) 3.*又是怎么样使用 展开
 我来答
百度网友ab0a29f
科技发烧友

2021-11-11 · 智能家居/数码/手机/智能家电产品都懂点
知道答主
回答量:72
采纳率:60%
帮助的人:18.3万
展开全部
  1. 数组变量a既可以表示这个数组,也可以表示数组首元素地址,没问题。

  2. 若a为int型数组,则a[1]=*((int*)a+1)。a+1表示在a的地址的基础上偏移整个数组占据空间的字节数,得到的地址。&(a+1)是二级指针,即地址的地址。

  3. *在数据类型后面和声明变量时,表示指针类型的含义。

    *在作为运算符号时,表示取指针(地址)对应的值。对于一个指针变量p,*p表示取地址存储的变量值,值的类型由指针类型决定。例如:

    char a = 'c';

    char *p = &a;

    char ch = *p;

    则ch的值为'c'。

红莲桑QWQ
2021-11-11 · 超过86用户采纳过TA的回答
知道答主
回答量:7029
采纳率:2%
帮助的人:284万
展开全部
 其中 a[0]、a[1]、a[2]、a[3]、a[4] 分别表示这 5 个元素的变量名。 为什么下标是从 0 开始而不是从 1 开始呢?试想,如果从 1 开始,那么数组的第 5 个元素就是 a[5],而定义数组时是 int a[5],两个都是 a[5] 就容易产生混淆。而下标从 0 开始就不存在这个问题 ...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式