2014-03-19 56 views
0

農行你好,我有我的程序有問題,該程序應該打印與指針打印帶有指針

的代碼 -

void printArray(char* p, int len) 
{ 
for(p ; p < p + len ; p++) 
{ 
    printf("%c", *p); 
} 
printf("\n"); 
} 

int main() 
{ 
char* abc = "abcdefghijklmnopqrstuvwxyz"; 
printArray(abc, 26); 
return 0; 
} 

由於任何人誰可以幫助我理解這個問題的基礎知識,我非常感激

+2

P

回答

6

嘗試

void printArray(char* p, int len) 
{ 
    while(len--) 
     printf("%c", *p++); 
    printf("\n"); 
} 

或真ķ& [R風格

void printArray(char *p) 
{ 
    while(*p) printf("%c",*p++); 
    printf("\n"); 
} 
0
#include <stdio.h> 

void print(char* array) 
{ 
    while(*array) 
    { 
     printf("%c",*array++); 
    }  
    printf("\n"); 
} 

int main() 
{ 
    char* temp = "abcdef"; 
    print(temp); 
    return 0; 
} 

沒有len要求。

這是如何工作的?那麼,因爲char * temp是空終止的,所以while循環將一直持續到它到達空終止字符(0)並且while(0)爲假,因此它將退出。

0

您需要使用不同的變量的迭代:

for (char *cur = p; cur < p + len; cur++) { 
    printf("%c", cur); 
}