вопрос о новичках C - PullRequest
       0

вопрос о новичках C

1 голос
/ 28 июля 2011
    #include "stdio.h"

void Square(int num, int *myPointer);

int main(int argc, const char *argv[]) {
    int originalNum = 5;
    Square(originalNum, &originalNum);
    printf("%i\n", originalNum);
    return 0;
}

void Square(int num, int *myPointer) {
    *myPointer = num*num;
}

Я не понимаю, как мы можем передать & originalNum для параметра указателя, когда originalNum - это int.Спасибо!

Ответы [ 4 ]

1 голос
/ 28 июля 2011

& означает: «адрес».originalNum - это int, поэтому &originalNum - это int* (указатель).

1 голос
/ 28 июля 2011

originalNum является инт.&originalNum - это указатель на originalNum и, следовательно, указатель на int или int *.

Другими словами, &originalNum - это адрес, в котором переменная originalNum размещена в памяти.Итак, когда вы передаете &originalNum, вы не передаете 5 (значение originalNum).Вместо этого вы передаете адрес, где хранится этот 5.

0 голосов
/ 28 июля 2011

originalNum - это int, & originalNum - указатель на int оператор & берет адрес originalNum, поэтому создает указатель.

0 голосов
/ 28 июля 2011

originalNum - это int, а &originalNum - его адрес. Это типа int*.

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