西西河

主题:【求助】向各位高手请教一个c语言中数组与指针的问题 -- 数值分析

共:💬84 🌺26 新:
全看分页树展 · 主题 跟帖
del
家园 因为

b[0]=&a[0][0]推不出b[1]=&a[1][0]。在你的例子中,b[1]作为一个指针未被赋值,指针未被赋值就使用有什么后果应该知道吧。

再说一遍吧:b是指针变量,它的值是一个指针变量的地址;b[i]也是一个指针变量,它的值是一个整数变量的地址。a本身不是变量,你可以把它看做二维数组头地址的缩写;a[i]是数组a第i行头地址的缩写,不是变量。&a[i]导致语法错误,而&b[i]是合法的,它的值等于b+i *(int* 的长度);作为对照:a[i](不是&a[i])的值等于a+i * K *(int 的长度),其中K是最后一维的维数。麻烦的是C语言中上述两个值的表达式非常相似,分别是b+i和a+i。哈哈,头疼了吧。

全看分页树展 · 主题 跟帖
  • 相关回复 上下关系8

    压缩 5 层



有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河