一道C語言問題,請詳細說明一下運算過程,萬分感謝

2021-03-08 18:04:30 字數 4034 閱讀 2442

1樓:super豔豔

大致的功能是將a的內容反向輸出,4,3,2,1. 難理解的是static int t = 3; 這個變數只初始化一次,因為是靜態變數所以資料在堆區,當fun結束後不會被釋放,下次繼續可以使用這個變數,且值是上次使用後的,當j=0時,t=3,*y=x[3];當j=1時,t=2,*y=x[2];以此類推,當然fun的傳參不夠安全,很容易陣列越界

2樓:找自己_做自己

t, 只能在void fun中使用,,先執行

void main() 在執行void fun(int*x,int*y );跳轉到定義。執行void fun(int*x.int*y)裡面的,在執行 int a=,j,x=0; 接下來執行for(j=0;j<4;j++) j=5時不執行。

3樓:匿名使用者

核心問題是 static int t=3;儲存在靜態資料區的變數會在程式剛開始執行時就完成初始化,也是唯一的一次初始化,main函式中迴圈呼叫4次fum函式,第一次呼叫把a[3]賦給x並輸出,因為t--,第二次把a[2]賦給x並輸出……

一道c語言指標問題,求大神解答。萬分感謝。

4樓:匿名使用者

#include

int main(int argc, char const *argv)

,,};// 初始

化二維陣列

int i,(*p)[4]=a,*q=a[0];//定義變數i//陣列指標p 初始化為二維陣列首位址

//一級指標q 初始化為二維陣列首元素位址for ( i = 0; i < 3; i++)//for迴圈,迴圈3次

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

5樓:馮小氣氣

如果最後printf是printf("%d ",a[i][i])的話就可以這樣解釋:

1.二維陣列實際是3個一維陣列的結合a[0]= a[1]= a[2]=

2.(*p)[4]: *p指向的是a[0],*(p+1)指向的是a[1],*(p+2)指向的是a[2]

3.*q實際指向也是a[0][0]

4.第乙個迴圈體中只有i==0時才有對陣列元素的操作,表示式實際為(*p)[0 + 0 /2] = (*q)+1,即是(*p)[0]=(*q)+1,也就是a[0][0]=a[0][0]+1,即a[0][0]=1+1=2

5.輸出的時候是第i行第i列元素,也就是a[0][0] a[1][1] a[2][2]

6樓:匿名使用者

第二,是否能產生安全感,來自多方面的因素,有主觀的和客觀的。這裡我們就主要談談

主觀方面。要讓對方產生安全感,首先要做的就是讓對方相信自己。讓對方相信自己這是一件不容易的事,你必須在言談舉止方面能夠體現出來,比如:

說話要算數,說得到做得到,做不到就不要亂承諾;經常給她說說心裡話,說說你的想法,經常問候和關心一下她的生活;無論多忙都不要不理她,經常給她一些驚喜;不要再對其它女孩太好,言談和行動上都一樣;願意為他改掉你的不良習慣。

7樓:匿名使用者

你的return四遍完全就是沒有任何用的,你已經定義了全域性變數了,不用return。問題在於你雖然敲擊了回車,但那並不會被輸入。所以你while迴圈可能會一直迴圈下去,直到碰巧碰到乙個字元等於'\n'

#include

int l,n,b,o;

int count(char a)

}int main()

;printf("請輸入一句話:");

scanf("%s",str);

count(str);

printf("字母:%d\n數字:%d\n空格:%d\n其他字元:%d\n",l,n,b,o);

return 0;

8樓:匿名使用者

很多事都不是絕對的,不同的人有不同的做法。

9樓:匿名使用者

題目抄的都有問題……最後的 j 是從石頭縫裡蹦出來的?

10樓:韓稚生

1.二維陣列實際是3個一維陣列的結合a[0]= a[1]= a[2]=

2.(*p)[4]: *p指向的是a[0],*(p+1)指向的是a[1],*(p+2)指向的是a[2]

3.*q實際指向也是a[0][0]

4.第乙個迴圈體中只有i==0時才有對陣列元素的操作,表示式實際為(*p)[0 + 0 /2] = (*q)+1,即是(*p)[0]=(*q)+1,也就是a[0][0]=a[0][0]+1,即a[0][0]=1+1=2

5.輸出的時候是第i行第i列元素,也就是a[0][0] a[1][1] a[2][2]

一道c語言題,求解答,萬分感謝

11樓:谷歌地

小夥子這個題不用仔細分析

那麼一大段迴圈就是唬人的

就相當於一

個人出題問你版1 * 2 * 3 * 5 一直乘,乘到1000,然權後乘以0,等於多少一樣

都是唬人的

很明顯,這個陣列搞來搞去就是把陣列a的最後乙個元素變成指標陣列的最後一項唄

那就找找陣列a的最後一項,還有p的最後一項,或者pp的最後一項

看下答案

選項a,看起來很像是正確答案,但陣列下標從0開始,最大下標是11,所以a錯

b,很明顯是這個指標陣列的最後一項,那就是12唄

cd不要看了

當然你要深究,那麼,這個指標陣列長度是3,最後一項是p[2]存放a[8]的位址

然後p[2][3] = a[8 + 3]

12樓:威封凜凜

int a[12]=, 陣列a包含12個元素,為1到12*p[3], 指標陣列

**p,i; 指向指標的指標和變數i

for(i=0;i<3;i)應該為for(i=0;i<3;++i) 迴圈

p[i]=&a[i*4]; 意思是p[i]的值為a[i*4]的地版址,這裡權p[i]是指標

也就是p[0]指向a[0]位址

p[1]指向a[4]位址

p[2]指向a[8]位址

pp=p;pp指向指標陣列p的位址 pp是指向指標的指標,p是指標陣列,所以p也是指向指標的指標,可以pp=p

我覺得解釋到這裡差不多了,我相信你可以的

13樓:匿名使用者

int*p[3];定義來

指標陣列

自p,它由3個指向整型資料的指標元素組成,也就是說p[0],p[1],p[2]均是指標。

p[2]=&a[8]

p[2][3]=*(p[2]+3)

*(p[2]+3)=a[11]=12

請教高手乙個c語言的問題!萬分感謝!

14樓:匿名使用者

#include

int main()

if(b!=0)

if(b==0&&c!=0) //乙個等號=是賦值符號,兩個等號==才是邏輯判斷是否相等

return 0;

}測試通過,錯誤已經在**中以注釋的方式給出.

15樓:匿名使用者

你的程式有不少錯誤, 應該仔細分析一下, 下面可以參考一下#include

int main()

else

if(b!=0)

//if(b=0&&c!=0)

if(b==0&&c!=0) // 注意==與=的區別,==關係運算子判斷是否相等,=是賦值運算子,要區分開哦

return 0;}

16樓:匿名使用者

=是賦值號,==才是邏輯判斷用的

問一道C語言的問題。請高手解答,一道C語言的簡單問題求高手解答,求字串中不同字母個數

首先while k 這裡,括號 來里的是自 k的返回值,在k的前 bai面是先k減掉 du1再返回結果,因此執行zhi到這裡k為4,括號中的值為dao4,大於0應該是true,所以需要執行迴圈裡的內容。下面是printf這個函式,首先要先計算出printf的引數的值,也就是k 3的值,那麼這個表示式...

一道高一歷史選擇題(請進!請詳細說明!謝謝!)

滄州7月1日 c 因為我國奴隸制社會裡 禮樂制度很典型 並且當時的統治也是權利與地位 是強權的象徵。還有從題目本身解釋,也是祭祀和征討的意思。一道高一數學題 請進!請詳細說明!謝謝! 箭衡 解 抄tan 2x bai 6 2k 2 3 2x 2k 17 12k 6 k 3 所以k 2 6 tan 2...

一道高一數學題(請進!請詳細說明!謝謝!)

f x cos x 2cos x 2 cos x cosx 1 cosx 1 2 5 4 以 0,2 區間為例,在 0,3 區間上,cosx 從 1 遞減到 1 2,cosx 1 2 從 1 4 遞減到0 在 3,區間上,cosx 從1 2 遞減到 1,cosx 1 2 從0遞增到 9 4 在 5 ...