mshd.net
当前位置:首页 >> 在C语言中A是一个数组,*p=A+5有语法错误吗 >>

在C语言中A是一个数组,*p=A+5有语法错误吗

是否有错误,取决于p的类型。 a是数组,那么a的基础类型为A,则根据a的维数,如果是一维数组,那么a的类型为A*, 二维数组,A的类型为A**,依次类推。 无论具体是什么形式,最终a的类型设为P。 这样a+5,根据C语言规则,指针加上常数后,类型不...

如果是int a[10];这里的a是数组的首地址,但是const int*类型,也就是常量指针,它的指向不能修改,所以a++是不允许的。 如果有int *p = a; p++就是指向了下一个整形的地址。 p[5]就是第6个元素。(而不是地址了,是地址对应的整形数)

当a为数组名时,可以当做一维指针进行取值运算,但是由于数组名等同于常量指针,所以不可以对数组名进行赋值运算。 所以当a为数组时, a=任意表达式 这样的计算都是非法的。 而a++,等效于a=a+1, 所以这种表达式一样是非法的,编译的时候会报错。

a是一个数组,所以它本身就表示这个数组的首地址,所以你要让p指向这个地址就直接p=a就好了!当然,如果你拼要加&的话,你也可以用p=&a[0];

假设p = a; 则*p = a[ 0 ] = 1 *p + 1 = a[ 0 ] + 1 = 2; p + 1 = &a[ 1 ] //这里的 p + 1 是指针p的指向往后挪了一位 因此 *(p + 1) = a[ 1 ] = 3

首先呢,a是二维数组,不解释。 然后呢,p是一个指针,什么样的指针呢,就是指向一维数组的指针,而且这个一维数组的元素个数呢是5. 然后呢,p=a;就是把p指向a数组。 分析选项: A p+1 .因为p是一维数组指针,所以p每+1就是+1行。错误。 B *(p...

char *a[]表示的是数组a[]是一个指向char的指针类型数组,相当于a[]里面的每一个元素都实际值都是一个指向字符串的指针(即存储某个字符串的首地址) 后面这个你应该要问的是char (*a)[]吧,不然的话就和第一个一样了 char (*a) [N]表示的是指向一...

int main(){char a[5]={'A','B','C','D'};char (*p3)[5] = &a;char (*p4)[5] = a;return 0;}个人感觉 char (*p4)[5] = a;这一句应该会出现语法错误,char (*p3)[5] = &a;这一句表示p3是一个一维五个字符的数组的地址,所以p3的值是数组a[5]的起...

你好,选B。 int *p = a表示指针p指向数组a的首地址。也可以说是a[0]的地址。所以p+5指向a[5]的地址

这是一个三目运算表达式,意思是如果5>3是真的话就a++,否则的话就b++。在这个里面表达式的值是a++之后a的值。

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com