1樓:
執行結果:8,8
+=是乙個操作,之後arr[0]=129,ptr加一,指向arr[1]
printf函式中ptr進入函式時指向a[2],列印*prt,*(++ptr)實際上都是列印ptr進入函式後的值
2樓:匿名使用者
int arr=; // 定義有5個元素的一維陣列,陣列名指向第乙個元素
int *ptr=arr; // 定義指標ptr 指向陣列第乙個元素
*(ptr++)+=123; // 先運算 *ptr 值為6,再算(*ptr)自加123,得*ptr=129,即陣列第乙個數變為129,然後計算ptr++,ptr指向陣列第二個元素;
printf("%d,%d",*ptr,*(++ptr)); // ++ptr,ptr指向陣列第二個元素;然後兩次輸出 *ptr,結果為 8,8
int arr=;
int *ptr=arr;
*(ptr++)+=123;
printf("%p %d\n", ptr, *ptr);
printf("%p, %d,%d, %p\n",ptr, *ptr,*(++ptr), ptr);
printf("%d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], arr[4]);
3樓:長春**蟈蟈
指標就指向陣列第乙個位置0,++就是移動乙個,這回明白了吧
4樓:匿名使用者
/*c語言程式執行過程.
*/#include "stdio.h"
void main()
; /* 定義5個元素的一維陣列 */int *ptr=arr; /* 定義指標ptr指向陣列第乙個元素 */
*(ptr++)+=123; /* 先計算(ptr++)的結果,然後ptr指向陣列第二個元素;再運算*ptr值為7,再加123. */
printf("%d,%d",*ptr,*(++ptr)); /* 最後執行結果為: 8,8 */}
5樓:匿名使用者
問:printf函式中ptr進入函式時指向a[2],為什麼ptr進入printf函式中就指向啊a[2]了啊?
答: ptr指向了a[2];原因就在於++ptr在printf()中。最後一句若改為:
printf("%d\n",*ptr);
printf("%d\n",*(ptr++));
這樣,其結果則為7,8;
至於為什麼這樣,就是因為printf()函式在程式中屬於乙個命令,而 ++i 運算在執行時是在命令之前就已經執行的。。。故ptr指向了a[2];所以最後一行命令也就可以理解為:
++ptr;
printf("printf("%d,%d",*ptr,*ptr);");
c語言程式,x=5,y=x++*x++,y=--y*--y,求最後y的結果以及過程原理。
6樓:匿名使用者
y= 529
執行 y = x++* x++後
y = 25,
++在後表示執行後再遞增,所以不影響
--在前,表示先減了再運算
所以 y = 23*23 = 529
7樓:匿名使用者
y = x++* x++ 中x要乘完再自增的,所以是5*5
8樓:聽海的聲音
529 這種問題少問的好
c語言遞迴函式,實現字串逆序輸出,**如下,想不通執行過程和原理,求解釋
9樓:風影美
就是乙個棧的效果,先進後出
如輸入abc\n
首先進入第一層reverse:c='a', c!='\n'
----進入第二層reverse:c='b', c!='\n'
--------進入第三層reverse:c='c', c!='\n'
------------進入第四層reverse:c='\n',------------結束第四層reverse,回到第三層--------c!='\n',輸出c,結束第三層reverse,回到第二層
----c!='\n',輸出b,結束第二層reverse,回到第一層c!='\n',輸出a,結束第一層reverse,程式結束
51微控制器數碼管,下面是數碼管原理圖,求簡單的c語言程式點亮數碼管
10樓:幸虧偶不是
你試著將所有的都置1,或者為0,加上控制端 共四種情況 就會出來了 左邊的8個口就是數碼管8字 中的7個橫豎管 加上乙個 點 共八個 右邊為哪個數碼管的控制端
畢竟不知道是共陰極還共陽極的數碼管
11樓:匿名使用者
^假設此為共陽極數碼管
#include
sbit wx1=p1^0;
sbit wx2=p1^1;
sbit wx3=p1^2;
sbit wx4=p1^3;
void main(void)}
12樓:匿名使用者
乙個埠有 8位,0-7
這裡 用的是 p0口,所以設定 sbit p0=p^0;p0=0xffh;應該可以亮
13樓:匿名使用者
你是不是使用的微控制器開發板呀,你看看你的這個數碼管對應的排線有沒有接,貌似直接了二極體的排線沒有接數碼管的排線,能不能把完整的線路圖發來看看
14樓:匿名使用者
11 7 4 2 1 10 5 3一半設為1
同時12 9 8 6 設為1 0 1 0
看效果就行
15樓:
首先要知道是共陰還是共陽?不要搞反了
C語言,求過程,C語言程式,求過程?
程式輸出結果是 a for語句裡迴圈判斷是f s i 即函式返回非0,則迴圈繼續,而f函式是判斷奇偶數,所以陣列裡從0下標開始,是奇數就迴圈,偶數就退出,所以程式輸出是前面3個奇數相加的結果,相加得9,所以選擇a i 0 i 0 等待f s i 返回值 f s 0 a 1 返回a 2,返回值 1 f...
C語言下面程式的執行結果是
x的值是每次來在執行迴圈體源第乙個語句進行賦值的。bai每個if語句都是du先加加,然zhi後再模2,模3,模7。全部條件滿足dao後,才會輸出x。計算的並非是x的原始值,而是計算的三次加加後的x的值。比如輸出28的時候,i的值是25,那麼此時x的值也是25。首先進行第乙個判斷,因為是前加加,所以對...
c語言下面程式段的執行結果是個人算是
答案是4.實際上是求出6 10的所有合數數量。一旦能夠整除,就跳出當層j的迴圈,進入i的下一次迴圈。題目意思是巢狀迴圈,當滿足m除以n沒有餘數時候,執行s 跳出第二層迴圈,回到第一層迴圈繼續遍歷,直至兩層迴圈遍歷結束,輸出結果。過程如下 第一次 6 2 0,執行s s 1,跳出第二層迴圈 第二次 8...