01/10/2018, 15:16

Vấn đề về truyền con trỏ vào hàm

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void printToken(char *monthPtr)
{
     char *tokenPtr;
     tokenPtr = strtok(monthPtr, "/");
     while(tokenPtr != NULL){
        printf("%s ", tokenPtr);
        tokenPtr = strtok(NULL, "/");
        }
}
int main()
{
    char date[] = "01/13/2001";
    char *monthPtr;
    long month = strtol(date, &monthPtr, 0);

    if(month == 1){
        printf("%s ", "January");
        printToken(monthPtr);
    }
}

tôi đang thắc mắc tại sao truyền con trỏ monthPtr vào hàm mà không cần toán tử địa chỉ. Xin được trợ giúp.

Dark.Hades viết 17:20 ngày 01/10/2018

Nó vốn dĩ là con trỏ rồi thì không cần phải dùng & nữa, nếu dùng & tức là sẽ truy cập vào con trỏ của con trỏ đó.
=> phải dùng tới ** mới lấy được giá trị

Trường hợp dùng & khi muốn lấy địa chỉ của biến không phải con trỏ (hoặc địa chỉ của con trỏ).

Nếu bạn viết
char monthPtr;
Thì sẽ phải &monthPtr

Jacaré Junior viết 17:18 ngày 01/10/2018

Tôi hiểu rồi, cảm ơn bạn

Bài liên quan
0