程序在c中读取一个char数组

ano*_*est 2 c

我对C很新.

#include <string.h>
#include <stdio.h>
int main(int argc, char *argv[])
{ 
    char* c=argv[1];
    for (int i=0;i<sizeof(c);i++)
    {
        printf("%c\n",c[i]);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个程序来打印单词的每个字符.

当我尝试测试时:它显示当我尝试使用testtesttest时:显示:t e s t

我不明白为什么,你能告诉我为什么好吗?

Som*_*ude 5

两个问题:sizeof在指针上使用运算符会返回指针的大小而不是指向的大小.如果你想要你应该使用的字符串的长度strlen.

第二个问题是如果你的程序没有参数会发生什么.然后argv[1]NULL.