程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 指針-C語言,請問這個逆序輸出的程序哪裡錯了

指針-C語言,請問這個逆序輸出的程序哪裡錯了

編輯:編程綜合問答
C語言,請問這個逆序輸出的程序哪裡錯了

#include
int main(void)
{

char ar[] = "abc";
char ar1[4] = {0};
//設置指針p指向數組ar的首地址
char *p = ar;
//使指針p指向數組ar的最後一個有效字符
for (; *p++ != '\0';)
;
p--;
//獲取數組ar的長度
int i,j;
i = strlen(ar);
//將逆序排列存儲到數組ar1中
for (j = 0; j < i; j++)
ar1[j] = *p--;
//輸出逆序數組
puts(ar1);

return 0;

}

最佳回答:


//使指針p指向數組ar的最後一個有效字符
for (; *p++ != '\0';)
;
p--;
//獲取數組ar的長度
此處的循環,在最後一次檢測到\0時,又將p加了1,因此此時的p指向的是abc後邊的第二個位置,所以p--應該執行兩次才行。
for (; *p++ != '\0';)
;
p-=2;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved