关于C语言中的指针

时间:2019-02-26 01:54:56

标签: c

struct Data{
    char * str;
};
int main(){
    struct Data p;
    char mystr[6];
    p.str = mystr;
    char s[] = "cs120";
    char * j = p.str; 
    for(char * i = s; *i != '\0'; i++){
        *j = *i;
        j++;
    }
    *j = '\0';
    printf("%p: %s", j+1, p.str);
    return 0;
}

这是打印地址和字符串的代码。但是,我不了解“ p.str”的作用。

这是否意味着将p(数据结构中的指针)转换为字符串? 另外,“ p.str = mystring”是否意味着p寻址到mystr?

1 个答案:

答案 0 :(得分:2)

p不是指针,而是struct Data变量。 p.str是此结构的成员,它是char *指针。

p.str = mystr;

mystr数组的地址复制到该指针中(在此上下文中,数组变量衰减为指向其第一个元素的指针)。