关于二维数组赋值语句
定议:int *p,a[3][4];那么,在二维数组中,指针变量p的基类型与a[i]相同,因此赋值语句p=a[i]是合法的。a[i]能写成*(a+i)。因此赋值语句可以写成:
p=*(a+i);
如上,上面是教材内容,说这样赋值是对的,一直想的不太明白的是,p是指针,那得到的不应该是地址么,但表达式右边得到的是一个地址所在存储单元的值,怎么会对呢?
所以请教:
1、*这个运算符加在赋值号右边不就是表示的是(a+i)这个存储单元地址中的值么,怎么还会是可以赋值给存储地址的p这个指针变量呢
2、a[i]能写成*(a+i),这个可以理解,这是作为值时可以相等,若是作为地址时,*(a+i)都不是表示地址的,怎么可以赋值给一个指针变量呢?这样还可以将a[i]写成*(a+i)??
希望各位前辈指教
[此贴子已经被作者于2016-4-22 18:21编辑过]