永发信息网

c需深思问题

答案:2  悬赏:0  手机版
解决时间 2021-02-11 13:30
有如下叙述:
int string[100][50]
而string[100]指向列, &string[100]指向行
string[100]不是可以看成100行的首地址?不是指向行么?大虾来啊。
最佳答案
这个问题有人问过,有点意思。
二维数组有如下表示公式:
a[i]=*(a+i) ,a[i][j]=*(a[i]+j)
所以说string[i]=*(string+i),&sting[i]=string+i,string是二维数组的起始地址也是行指针,即string+1移动的是一行(50个元素)。
这里所谓的行指针还是列指针是指在一个地址值后加一个数字后该地址变化从而移动的是行还是列。这个概念要理解清楚。也就是说string指向第sting[0]行,现在(string+1)指向第string[1]行,移动了一行,移动的是行所以说string是行指针,),&sting[i]=string+i所以也是行指针。而string[i]是什么?数值上是指向i+1行的第一个元素的指针,所以string[i]+j表示在第i+1行这一行中向后移动j个单元,也就是行没动,列在动故string[i]是列指针,是行还是列指针是相对一个具体的行再在它后面加上一个数字后的变化而言的,与string[i]或者string本身指在哪里无直接关系,虽然string[i]=&string[i]=第i+1行的首地址,意思还是不同。实际上string[0], ......, string[99]并不是实际的元素,它们在内存并不占具体的存储单元,只是为了表示方便而设计出的一种表达方式而已。
你理解了这个,说明你对指针有了深认识。
全部回答
看上去有点复杂的问题,一弄发现原来比较简单。有人问过的问题,程序是以前写的,已运行通过。 #include <stdio.h> #include <conio.h> int main(void) { int i,j,len,k,time[20]={0},a[20],b[10],flag; long m,num1,num; printf("please input k and m:(0<=k<=10)\ "); scanf("%d%ld",&k,&m); for(i=0;i<k;i++) b[i]=i; for(num1=m;num1<100000000;num1+=m) { num=num1; len=0; flag=0; while(num) { a[len++]=(int)(num%10); num/=10; } for(j=0;j<len;j++) if(a[j]>=k) flag=1; if(flag==1) continue; else printf("the result is: %ld",num1); getch(); return 0; } printf("without proper answer or the answer is too big!"); getch(); return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
吵架感情有了裂痕怎么办
男生穿紧腿裤子或者散腿裤子该配什么样的鞋?
创世安网络录像机可以用站杆王网络摄像头吗
moldflow怎么控制输出文件的格式
本田怎么去啊,有知道地址的么
DNF安全模式了,手机令牌,短信验证都显示成
中隅幼儿园地址好找么,我有些事要过去
2013年四川大学土木工程招生调剂生吗?
草坪一平方多少钱
孟店中心幼儿园地址在什么地方,我要处理点事
红楼梦的感受(短的)
求计欣华版的《工程实验力学》电子书
黑木耳 海带 白萝卜 排骨可以一起做汤吗
盐百跨世纪幼儿园地址好找么,我有些事要过去
净水器压力罐满水后不停机,关了压力罐阀门后
推荐资讯
洁丰干洗(森园路美林翡翠华府旁)地址在哪,我
子午寅丑的读音
奉凉粉地址在哪,我要去那里办事
老奶奶戴耳环好看么五十多女人戴耳环好看么
广州三星专卖店地址江高
动了情的痞子歌词
庙湾村这个地址在什么地方,我要处理点事
高邮三垛供电营业厅(二沟收费点)地址在什么地
鑫宇体育地址在哪,我要去那里办事
我从成都到陕西汉中自驾,请问返回途中有什么
验证码发到手机手机没收到怎么回事
5X+15-2X-2=10
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?