2014-03-19 54 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); 
}