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?
答案 0 :(得分:2)
p
不是指针,而是struct Data
变量。 p.str
是此结构的成员,它是char *
指针。
p.str = mystr;
将mystr
数组的地址复制到该指针中(在此上下文中,数组变量衰减为指向其第一个元素的指针)。