#include<stdio.h>
void main()
{
char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'\0';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
uj5u.com熱心網友回復:
p指標陣列,即是陣列,元素是指標,*p[2]定義了2個char *型別的指標變數;char ch[2][5]定義了一個二維陣列;初始化了2個字串;加上'\0'正好5個字符;
下面的結果就是需要樓主根據結果可以反推出兩層回圈邏輯了。
uj5u.com熱心網友回復:
我想知道那兩層回圈是怎么回圈的

uj5u.com熱心網友回復:
供參考:#include<stdio.h>
void main()
{
char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++) //按行:i=0時-->"6937"
// i=1時-->"8254"
for(j=0;p[i][j]>'\0';j+=2)//i=0 j=0 p[i][j]='6' ,i=0 j=2 p[i][j]='3'
//i=1 j=0 p[i][j]='8' ,i=0 j=2 p[i][j]='5'
s=10*s+p[i][j]-'0';
printf("%d\n",s); //輸出數字:6385
}
uj5u.com熱心網友回復:
回圈還需要怎么解釋,你用結果可以倒推到回圈的邏輯的,j+2,不就是跳著來的嗎?比如p[0][0]是'6',那么j+2不就是'3'嗎?這些還需要怎么解釋?
p[0][4](j = 0, j+2, j+2)不就是'\0',這是兩個字串,所以p[1][4]也是'\0'。
如果字串,陣列,回圈學的還可以的話,這不算是什么難點的呀~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/284375.html
標籤:新手樂園
上一篇:電子廠
下一篇:wifstrem的問題?