c语言中数组元素正确引用,若有以下说明和语句对 c 数组元素的正确引用是

1 , 若有以下说明和语句对 c 数组元素的正确引用是dcp和c等效A 等效于 &cp[1]为第二行地址 。B 等效于cp[3] 为第四行地址 。C &cp[1][3] 第二行第四个元素地址 。只有D 是c[2][3] 代表元素选D【c语言中数组元素正确引用,若有以下说明和语句对 c 数组元素的正确引用是】
2,c语言定义int c7pc 对c数组元素的正确引用是 c5最后一个不是对元素的引用c本身是数组名,也是整形指针,c+2是该指针后移了两个Int的位置 。*(c+2)才是引用的其中的元素 。前3个都可以a:下标越界,数组大小为5时,下标范围为0-4b:a+2是数组第3个元素的地址c:越界,类似ad:正确
3,怎么才能正确引用数组元素有几种方式A下标越界B为a[-1]C也为a[10]D为a[9]一般有两种:比如 int a[100]方法1:数组下标的方式,可以用a[i]方法2:指针的方式int * p=a;或者int *p=&a[0];这时 *(p+i)等价与a[i]当然我们也可以用p[i]记住一条:c语言里面m[i]=*(m+i)推荐你看《c程序设计语言》中文或英文版都可以 。
4 , c语言入门 数组元素的引用 感谢帮助p表示的是&a[0],p+i表示的是&a[i]D有&a[i]是a[i]的地址*是对地址对应内容的引用p表示a[0],p+i就表示a[i]了呗这句话不对数组名代表的是这个数组的初地址,是个地址值,不代表元素的p+i就表示a[i]的地址 , 要想表示这个元素,得是*(p+i)至于*(&a[i])当然是正确的&a[i]代表a[i]的地址*(&a[i])不就是指向a[i]的元素么不会的可以HI我1.数组元素 是值2.p+i是表示地址3. 对于*(&a[i])其中 &a[i]表示a[i]的地址,加个*就表示值了p+i只是a[i]的地址 , 并不是a[i]的元素值 。*(&a[i])是先取a[i]的地址,然后再对这个地址解引用,所以*(&a[i])相当于a[i]没错误&是取地址,而*是访问这个地址.与写x[0]是一样的.5,C语言用指针引用数组元素(*p)[3]是定义一个指向一维数组的指针,数组元素为三 。也就是说p指向的其实是a[0],a[1],a[2]这样的形式 。p=a;其实就是把第0行的首地址赋值给p.所以答案C中p[1]即是把第1行的首地址给p,在此基础上向后移一位,取出地址中的元素数值 。*(p[1]+1)相当于a[1][1].所以是对的 。B的形式是对的,但是它相当于a[2][1],超出界限所以为错 。剩下的两个格式就不对 。p是指向有3个int*型元素的指针 , 也可以说p代表一维数组,p=a就是把a指针放到p数组的第一个位置,因此p[1]是指a,那么c选项就是访问a的第一个元素二维数组名a是一个指向指针的指针 。也是一个指针数组名 , 它含3个元素,a[0]a[1],a[2] 。虽然a存储的地址是该数组首元素的地址 , 但它指向的并不是一个变量,而是一个指针 。应为a是一个指向指针的指针,它指向的是和自己存储的地址相同的指针,即a[0],a[0]是第一行一维数组的指针,可以指向具体变量 。这下明白了吧,*(a+0)它不是变量,她是指针,a指向a[0],*(a+0)就是a[0].int (*p)[3]可以看做struct{int m [3]}*p;表示一个装有三个整数的指针,p[1]相当于地址加3个整形的大小,再加一相当于地址又加了1赋值后,指针数组的第一个指针指向字符串数组(a)里的第一个字符串的第一个字符 , 第二个数组指向第二个字符串的第一个字符,第三个指针没有指向任何实体是空的 。A.是一个指针,指向a中第二个字符串B.由于a的第一维大小为二,故B选项是空的 , 没有应用a中的元素 。D.也是一个空指针,没有应用任何元素

    推荐阅读