导航:首页 > 数据处理 > 如何构造第二数据地址指针

如何构造第二数据地址指针

发布时间:2023-02-09 13:41:25

A. C语言中如何用指针运算符来表示一个二维数组的元素及地址

二维指针,就是说第一维是指针,第二维还是指针;
拿*(*(a+i)+j)来说:a是数组的首地址吧,然后+i,就是说a地址向后偏移i位。就是a+i的地址了,注意,这里a+i只是地址,用*符号取出该地址的数据,就是*(a+i),这里*(a+i)就是第一维指针,它指的是地址,不是数据。
而且后面的*(a+i)+j就是说以*(a+i)为首地址,偏移j位,然后使用*取内容,这里就是第二维了,取到的数据就是实际数据了

B. C语言中关于二维数据指针的问题

由于类型不同,要用到显式类型转换。
不过首先,LZ定义的初始化列表明显有问题。
可用代码示例:
typedef char uchar;/*无论是C还是C++,char、signed char和unsigned char三者都无法保证为完全相同的类型(取决于平台和编译环境),为了类型兼容起见先这样定义。*/
uchar i;
uchar a[][5]={"PASS","FAIL","NONE"};/*注意char字符串(字面量)所占空间等于它本身+1,因为还有结束符'\0'。*/
uchar b[][6]={"10000","20000","30000"};/*同上。*/
uchar (*ip)[4];
ip = (uchar(*)[4])a;
ip = (uchar(*)[4])b;
另外可以用通用类型指针void*,在使用之前再显式转换类型(好处是这样的指针可以存放各种类型的地址,只要清楚引用时应该转化类型就行了)。
C/C++中数组一旦定义,便无法改变大小。除了支持C99标准的编译器外,定义数组时下标无法指定为变量。如果要实现动态数组,也不能使用这种方法,可以用指针+内存分配函数。总之,LZ的问题已在上面解决,用这方法……死心罢(编译器根本没法确定LZ要定义多大的数组)- -。
----
[原创回答团]

阅读全文

与如何构造第二数据地址指针相关的资料

热点内容
电脑股票交易明细按哪个键 浏览:365
注塑产品如何开机 浏览:989
建设银行普通信息卡是哪个 浏览:368
电商黑马技术有多少 浏览:963
三圣花乡花市场搬到哪里去了 浏览:294
口腔医学技术多少人学 浏览:312
权健产品什么时候重新上市 浏览:637
做电商怎么跑市场 浏览:338
双子冠军有哪些产品 浏览:327
沈阳菜市场都在哪个地方 浏览:983
焊接技术员可以赚多少钱 浏览:233
c语言程序表示一年有多少秒 浏览:872
红字发票信息表附在哪里 浏览:664
交易猫腾讯号已发货多久交易成功 浏览:324
中国基因技术如何 浏览:877
化妆品批发代理商需要什么资质 浏览:25
p城的技术怎么样 浏览:109
技术类体操的基础技术是什么 浏览:18
网络登不上了如何查询以前信息 浏览:898
陌陌如何设置拒绝接收信息 浏览:127