c语言数组指针
int a , (*p1),(*p2) ;p1=a;
p2=a;
请问这段的代码的赋值错在哪里?p1可以指向列宽为5 的二维数组,现在指向列宽为 3 的二维数组 ,不可以这样子吗? 指针数组指向数组地址首地址,后面的【3】表示这个数组的类型大小或者说长度吧 love_qj 发表于 2020-4-18 23:09
指针数组指向数组地址首地址,后面的【3】表示这个数组的类型大小或者说长度吧
您好,
int(*p) 是一个数组指针,可以指向一个包含n列的二维数组,也就相当于指向一个含n个元素的一维数组,p本质上是一个指针变量
int *b 是一个指针数组,本质上是一个数组,它由n个指向整型数据的指针变量组成,可以这样理解,int a是一个整型数组,a和 b 都是数组名,只不过a数组的元素是整型数据,b数组的元素是指针变量 这个赋值没有问题 倒戈卸甲 发表于 2020-4-18 23:27
这个赋值没有问题
这是一道选择题中的一个选项,题目要求选出其中定义和赋值语句都正确的选项,这个是其中的错误选项 九千 发表于 2020-4-18 23:35
这是一道选择题中的一个选项,题目要求选出其中定义和赋值语句都正确的选项,这个是其中的错误选项
考试这东西,忍忍就过去了 倒戈卸甲 发表于 2020-4-18 23:42
考试这东西,忍忍就过去了
意义不同的,谢谢了,早点休息 九千 发表于 2020-4-18 23:44
意义不同的,谢谢了,早点休息
{:10_256:}意义是指你要考证吗?
考计算机证的话就多刷题,少逛论坛了。试题多半还停留在c89的标准,但现在的主流编译器已经支持c11标准,或者其补订的c14标准了 本帖最后由 jkluoling1992 于 2020-4-19 10:58 编辑
int a 是int
int (*p) 是int(*)
这两个类型数量对不上, a的第二维是3,p的第二维是5,不可赋值 倒戈卸甲 发表于 2020-4-18 23:51
意义是指你要考证吗?
考计算机证的话就多刷题,少逛论坛了。试题多半还停留在c89的标准,但 ...
不是考证,好的,以后如果考证的话会的,谢谢您 jkluoling1992 发表于 2020-4-19 10:23
int a 是int
int (*p) 是int(*)
我想的是,p的第二维是5 ,a的第二维是3,那p的第二维不是比a的第二维宽,宽度更大不可以这样赋值吗?
还是c语言规定,就必须是相同的维度才可以 九千 发表于 2020-4-19 11:59
我想的是,p的第二维是5 ,a的第二维是3,那p的第二维不是比a的第二维宽,宽度更大不可以这样赋值吗?
...
c语言没这种规定。这种问题你听别人说有什么用,自己动手一试不就知道了。昨天那题四个选择都是正确的,能编译通过且打印出正确的值来。最简单的四种情况,对四个变量名直接两层解引用,不进行偏移,你看看能不能得到二维数组的a。 九千 发表于 2020-4-19 11:59
我想的是,p的第二维是5 ,a的第二维是3,那p的第二维不是比a的第二维宽,宽度更大不可以这样赋值吗?
...
维度都不同,,你想越界访问啊{:10_245:} 倒戈卸甲 发表于 2020-4-19 12:08
c语言没这种规定。这种问题你听别人说有什么用,自己动手一试不就知道了。昨天那题四个选择都是正确的, ...
嘤嘤嘤嘤,我编译确实都能通过,两层引用也能得到首行首元素的值,,,,
不管了,,, jkluoling1992 发表于 2020-4-19 12:12
维度都不同,,你想越界访问啊
是会出现莫名其妙的东西 本帖最后由 倒戈卸甲 于 2020-4-19 14:11 编辑
九千 发表于 2020-4-19 13:13
嘤嘤嘤嘤,我编译确实都能通过,两层引用也能得到首行首元素的值,,,,
不管了,,,
好了,删掉了。关于数组的数据结构,你学的深了自然会认识到。这些理论上的东西平时也用不上,错误的认知也不影响你编程,何况考试只需按照书本来 本帖最后由 倒戈卸甲 于 2020-4-19 14:13 编辑
九千 发表于 2020-4-19 13:13
嘤嘤嘤嘤,我编译确实都能通过,两层引用也能得到首行首元素的值,,,,
不管了,,,
已删除
九千 发表于 2020-4-19 13:13
嘤嘤嘤嘤,我编译确实都能通过,两层引用也能得到首行首元素的值,,,,
不管了,,,
给你领悟几分钟,等会儿我会删掉 倒戈卸甲 发表于 2020-4-19 13:45
好了,删掉了。关于数组的数据结构,你学的深了自然会认识到。这些理论上的东西平时也用不上,错误的认 ...
确实实际编程也不会这样,就是题目是这样,一遇上就晕的不行
页:
[1]