c語言for迴圈語句中aij和aji有什麼區別

2021-04-18 21:09:27 字數 5080 閱讀 1037

1樓:匿名使用者

可以將i 理解成行,baij 理解成du

列,a[i][j]和a[j][i]取值不同zhi比如,假設一個3維陣列

dao(你的是5x5),數內值分別為容:

1 2 3

4 5 6

7 8 9

迴圈中,當i=0時,a[i][j]取值為1 2 3,a[j][i]取值為1 4 7,根據這個來理解結果的不同吧

c語言的for迴圈的條件語句中 i++; 和 ++i; 有什麼區別?

2樓:々了了

表示式三的位置嗎?

那樣就沒有區別了

不過奉勸lz不要看++i 和i++在printf中得例子,例如 pirntf("%d",++i);

這個例子不恰當,涉及的東西更多,只需明白++的先後就可以了

3樓:匿名使用者

沒區別~

給個有區別的例子

a[i++] = 1

a[++i] = 1

前面相當於 a[i] = 1; i ++;

後面相當於 i ++; a[i] = 1;

4樓:匿名使用者

for迴圈如果後面沒有再用到i沒有區別

真要要說的話++i效率比較高

i++ 相當於 tmp = i, tmp++, i = tmp++i相當於 i = i + 1

5樓:

在迴圈中通常是在迴圈變數更新時用到i++; 或++i; 此時二者用法完全一樣沒有區別;

只有在考試時才會用到二者的真正區別吧。

6樓:匿名使用者

i++是先用i的值,在自增。++i是用i先自增,在使用自增後的值。

7樓:作風格

i++是先加再呼叫,++i是先呼叫再加

8樓:淘氣的峰

i++先執行再加

++i先加在執行

int i=1;

printf("%d",++i); //輸出是2——————————————

int i=1;

printf("%d",i++); //輸出是1

9樓:匿名使用者

for迴圈中確實是沒有區別的(功能實現上)!

10樓:匿名使用者

i++先比較i的值然後++

++i是先++然後比較i的值

c語言:a[i][j]=a[i-1][j-1]+a[i-1][j]之後為什麼不能直接printf而還要一個迴圈

11樓:

完全可以,只是你沒這個幹。如下**。。

#include

main()

; while(n<1 || n>16)

for( i=0; i,置1

else

printf("%5d",a[i][j]);

}printf("\n"); }}

你的原**中,迴圈是從 1開始的,所以如果直接printf會導致第一列丟失,需要對**修改下。

12樓:匿名使用者

直接printf("%5d",a[i][j]);

輸出的是什麼? 當然只有一個數! 而他這裡需要輸出n個數。所以必須用迴圈了!

13樓:匿名使用者

應該是你的題目讓你輸出形式為楊輝三角,那個迴圈是讓這個程式的輸出和楊輝三角一樣,你可以把那個迴圈去了,在執行下程式,看看他倆的區別就知道了。

為什麼c語言中*(a+i)+j能表示a[i][j]的地址

14樓:

int a[3][4]; //假設定義一個3行4列的二維陣列,所謂二維陣列就是陣列的陣列

a[0]、a[1]、a[2]是陣列a的元素,而這個元素是陣列,而不是我們通常認為的基本資料型別的資料

所以*(a+i)就是獲取陣列a中第i個元素,等價於a[i],而a[i]本身又是一個包含有4個int型數值的陣列,a[i]是這個一維陣列的陣列名,我們知道陣列名的本質是一個地址,是陣列首元素地址,所以

*(a+i)+j就是表示下表第i行的第j個元素的地址了。所以,

*(a+i)+j表示的含義是元素a[i][j]的地址,也可以用a[i]+j來表示。

15樓:聽不清啊

int a[2][3]=;

printf("%d ",*(*(a+1)+2));

以上的引用能夠輸出60

因為a是二維陣列名,所以它是指向指標的指標(二級指標)。

*(a+1)就是a[1],它是一個一維陣列,也是一維陣列的首地址(指向一維陣列首元素的指標)。*(a+1)+2就是a[1][2]的地址,*(*(a+1)+2)就是a[1][2]。

16樓:匿名使用者

*(a+0)取出a[0]的值

a[0]的元素又是一個一維陣列

因此*(a+0)取出的就是這個一維元素的首地址那麼*(a+0)+0表示: 一維陣列a[n]中, a+0陣列元素a[0]的地址

*(a+0)+1表示一維陣列的1號陣列元素的地址

c語言中下面**a[i][j]=0什麼意思??

17樓:莫染進媼

a是一個二維陣列

a[i][j]是取第i行第j列的值。

這句的意思就是把

a中第i行第j列的值,賦值給變數sum.

18樓:寇印枝俎煙

inta[11][20],定義的是二維陣列,a[i][j]表示第i+1行,第j+1列的陣列元素;

a[i][j]=0;

表示對這個陣列元素賦值。

c語言中,a[i][j]=a[i*130+j]什麼意思?

19樓:匿名使用者

a是一個二維

陣列bai,假設du

大小為[x][y],那麼他在zhi記憶體佔用的地址則為dao x*y*型別專大小;

a[i][j]是指這個陣列的某行某屬列的元素,在記憶體中表示為從a[0][0]開始 記憶體地址加上(i*x+j)*型別大小 那個位置的陣列元素;

a[i*130+j]則是指從a[0][0]開始 記憶體地址加上(i*130+j)*型別大小 那個位置的陣列元素。

希望對你有幫助!

補充下,c++的指標很神奇,a[i*130+j]可以表示為 *(a+i*130+j);可以試試。

20樓:堅決的k日主義

語法錯誤

a要麼是一個二維陣列

要麼是一維陣列

c語言中:for(i=0;i<3;i++) for(j=0;j<3;j++)是什麼意思 30

21樓:四舍**入

是一個雙重迴圈。

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈。

先迴圈第一個fori=1j=1,2,3i=2j=1,2,3i=3j=1,2,3一共3*3執行9次。

for遍歷0到9之間的數字,for迴圈由迴圈體及迴圈的終止條件兩部分組成。

22樓:會飛的小兔子

c語言中:for(i=0;

i<3;i++)for(j=0;j<3;j++)是一個雙重迴圈。

for(i=0;i<3;i++)

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈

先迴圈第一個fori=1j=1,2,3i=2j=1,2,3i=3j=1,2,3一共3*3執行9次、

for遍歷0到9之間的數字

for(;i<10;i++)

printf("\n");

//此時i的值是10

printf("i=%d\n",i);

擴充套件資料for迴圈體外定義變數

#include

intmain()

printf("\n");

printf("i=%d\n",i);

intj=0;

for(;j<10;)

printf("\n");

printf("j=%d\n",j);

return0;}

23樓:

這是一個雙重迴圈。

for(i=0;i<3;i++)

其中for(j=0;j<3;j++)是for(i=0;i<3;i++)的內嵌迴圈;

先迴圈第一個for i=1 j=1,2,3 i=2 j=1,2,3 i=3 j=1,2,3一共3*3執行9次。

for迴圈由迴圈體及迴圈的終止條件兩部分組成,for迴圈其在各種程式語言中的實現與表達有所出入,但基本為以c語言和pascal語言代表的兩種形式。

擴充套件資料

for迴圈中的變數可以是一個也可以是多個,不要侷限於一個變數處理到底,那樣有時會很單調,當程式適合把多個變數組成迴圈時,用多個for語句來表示就是有些浪費了。

for迴圈中語句可以為語句體,語句體外加大括號"{}"將參加迴圈的語句括起來。 for迴圈的三個表示式都是逗號表示式,這樣來說,其實每個分號表示式可以由幾個逗號表示式構成,中間用",」隔開,最後以「;」結束。

24樓:匿名使用者

迴圈從3開始,每次j減1,當j=0時,迴圈條件不滿足,因此只巡檢3次;

這種寫法很不好,不推薦使用。

25樓:

for(j=3;j;j--)

寫為for(j=3;j>0;j--) 這樣可以讓人更明白意思

意為從3開始迴圈,每次自減1,到0不滿足條件就跳出迴圈了

26樓:孤獨一客人

這是一個雙重迴圈

格式for(i=0;i<3;i++)

27樓:匿名使用者

這是一個雙重迴圈,通常我們會在迴圈中加個大括號

for(i=0;i<3;i++)

其中i從0到2,i取一個值,j就從0取到2,共迴圈9次

C語言迴圈語句中i 和 i有什麼區別

假設i 6 那麼i 的值為6,但執行完i 後i的值就變成7了 i的值為7,因為 i是這樣執行的 先自增後取值 簡單的來說,i 和i 在單獨使用時,就是 i i 1。而a i,相當於 i i 1 a i 而a i 相當於a i i i 1 如果實在搞不明白 怎麼回事,那也不是什麼天塌下來的事。因為a ...

C語言的for迴圈語句,C語言中迴圈語句有哪些?

呵呵,是可以執行的。for rooster 0 rooster 100 rooster for hen 0 hen 100 hen for chick 0 chick 因為只有到這裡才有分號。用 是在多個分號出現的語句中。for while if 等語言語法中都有 若有多條語句必須用 擴起來 的有效...

c語言while語句中if else 語句中while語句

等同於加上括號 while 條件1 else 實際上時這樣的,條件1為假什麼都不執行,條件2為假執行else 求高手解釋 在c語言中,if語句中不是不能用break嗎?怎麼資料裡用了?可以用,因為if外面是while迴圈,break是用來退出while迴圈的。如果外面沒有while迴圈,只有if語句...