Об указателе на языке Си - PullRequest
       2

Об указателе на языке Си

0 голосов
/ 26 февраля 2019
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 голосов
/ 26 февраля 2019

p это не указатель, это переменная struct Data.p.str является членом этой структуры, это указатель char *.

p.str = mystr;

копирует адрес массива mystr в этот указатель (переменная массива распадается на указатель на свой первый элементв этом контексте).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...