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.

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

2 Likes

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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?