指针数组

[复制链接]
查看11 | 回复1 | 2010-1-25 13:10:34 | 显示全部楼层 |阅读模式
1.有定义int a[5],*p=a;假设对i的引用是合法的,则对a数组元素的非法引用是(D)A。aB *(a+i)C *(p+i)D *(&a+i)---------D语义错误,a本身就是一个地址,&a对地址取地址是错误的逻辑2.有定义int a[3][4];则(B)对数组的引用是错误的A *(*(a+i)+j)B*(a+i)[j]C*(&a[0][0]+4*i+j) D*(a+j)---------B语法错误3.下面不能正确进行字符串赋值的是(A)A。char s[5]={"ABCDE"};麻烦好心人帮忙讲解下---------把大括号去掉就好了,或者改成char s[2][5] = {"ABCDE"}或者 char s[5] = { 'A','B','C','D','E'}
回复

使用道具 举报

千问 | 2010-1-25 13:10:34 | 显示全部楼层
1.a本来就是地址&再取地址肯定不对啊a和p是一个性质的都是数组首地址(因为数组是连续空间存贮,只知道首地址和偏移量i即可找到后面的元素)2.二维数组的引用,很少这么用,他是二维的抽象,你要记得二维数组他也是一维数组实现的,也是连续空间。3.这里说的是字符串赋值!!一定要给'\0'留一个位置。你可以用一个for循环一个字母的赋值。那样不会超。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行