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.*又是怎么样使用
展开
2个回答
展开全部
数组变量a既可以表示这个数组,也可以表示数组首元素地址,没问题。
若a为int型数组,则a[1]=*((int*)a+1)。a+1表示在a的地址的基础上偏移整个数组占据空间的字节数,得到的地址。&(a+1)是二级指针,即地址的地址。
*在数据类型后面和声明变量时,表示指针类型的含义。
*在作为运算符号时,表示取指针(地址)对应的值。对于一个指针变量p,*p表示取地址存储的变量值,值的类型由指针类型决定。例如:
char a = 'c';
char *p = &a;
char ch = *p;
则ch的值为'c'。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询