1
int main() {
    int i;
    char a[]={"Hello"};
    while(a!='\0') {
        printf("%c",*a);
        a++;
    }
    getch();
    return 0;
}

Strings are stored in contiguous memory locations & while passing the address to printf() it should print the character. I have jst started learning C. I am not able to find an answer to this. Pls help.

4

4 に答える 4

2

あなたのコードでaは、 は配列の名前です。 のように変更することはできませんa++。次のようなポインターを使用します。

char *p = "Hello";
while(*p++)
{
     printf("%c",*p);
}
于 2013-07-01T13:09:01.480 に答える
0

for ループを使用して試すこともできます。

#include <stdio.h>

int main(void) {
   char a[] = "Hello";
   char *p;

   for(p = a; *p != '\0'; p++) {
      printf("%c", *p);
   }

   return 0;
}
于 2013-07-01T14:32:56.377 に答える