若有定义:int a[5],*p=a;则对数组元素a[i]引用不正确的是
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/08 04:38:33
结果是3.原理如下:--是自减运算符,也就是说--p可以等同于p=p-1;因为p是地址,所以p的自减运算是相当于往前移一个位置,原来p是指向a[2],往前移一个位置,p就指向了a[1],所以*--p就
p是一个整型指针的数组,C正确(D你没有写完整吧)
第一句c=(a-=(b-5));先看a-=(b-5)b-5等于4a-=4就相当于a=a-4a是10,a=10-4就是6把6赋给c所以第一句执行完后a=6;b=9,c=6第二句c=(a%11)+(b=3
数组的下标是从0开始的所以a[1]是指数组中的第二个数,以此类推.所以a[1]=a[3]+a[2+2]-a[3-1];=a[3]+a[4]-a[2]=4+5-3=6最后为6
A错,p与a+1等价p向高地址移动一个int类型字节数再问:为什么啊?不懂耶再答:p是一个指向int型的指针变量,之所以特意声明指针变量的类型,就是让p指针在指向时,一次指向一个int型变量,而不是其
*(p+1)=3楼主追问chars[10]={‘A’,‘\0’,‘B’,‘C’,‘D’};则strlen(s)的值为strlen是计算字符串长度,遇到'\0'结束返回长度,所以是1structnum{
*p=a[0]*(p+1)=a[1]...*(p+5)=a[5]
额看错了如果用二维数组名作实参和形参,在对形参数组声明时,必须指定第二维(即列)的大小,且应与实参的第二维的大小相同.第一维的大小可以指定,也可以不指定.
a[3]p=a,*(p+3)=*(a+3)=a[3]
*p=a[0],*a,*(a+0),p[0]都是数组的第一个元素1*(p+2),*(a+2),a[2],p[2],都是数组的第三个元素3a和p的差别就是a指针是常量无法做改变指针值,p是变量
楼上回答很好.inta[5]={1,3,5,7,9},*p;等价于inta[5]={1,3,5,7,9};int*p;即p是一个指向整型的指针就好理解了
逗号表达式从左往右计算,返回最后一个表达式的值.a*=2后a=4,返回a+1=5
a是个常量,不能变化,但是p是个指针变量,可以加减,p的加减与p的类型有关,如果p是个int则,每次加四个字节,就是int型的长度,其它的也是相同的.char每次加一个字节.p+5代表第六个数值的地址
500再问:能具体点吗?过程!再答:先采纳再问:已经采纳!能给个过程不?再问:救急啊!再答:哈哈再答:我也不知道
C)元素a[6]的地址
p是一个一位数组的地址,&a取到的是a这个二维数组的地址,两者的地址是不同的.这里有一个行地址、列地址的概念.再问:那么a[1][2]就不是二维地址吗?再答:不是了,这么说吧,a是一个二维数组,a[1
因为a[3][2]是表示数组的第21个元素*(p+20)也是表示第21个元素A,C,D的表示是错误的
选C。A错,因为浮点型不能用在switch中。B错,本来将浮点型强制转换为整型之后用switch是可以的,但它在swich((int)x)后面多了个分号。C对,a+b的结果也是整型,没问题。D错,因为