Tại sao in &first[1] lại ra ký tự?

Chào mn em đang học con trỏ mà vẫn mơ hồ tại sao ví dụ này in ra &first[1] là địa chỉ mà nó lại in ra ký tự vậy ạ

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<time.h>
int getRandomNumber( int );
 char *article[] = { "the", "that", "this", "a", "one", "some", "any"};
int main(){
	 srand( time(NULL) );
    
	char *first = article[getRandomNumber(7)];
    printf("%c%s ",toupper(first[0]), &first[1]);
	
}
int getRandomNumber( int max )
{
    return rand()%max;
}

bạn đưa srand vao trong hàm getRandom rồi xem kết quả.

1 Like

Minhf vân chưa hiểu ý của ban

:)) %s sẽ hiển thị từ vị trí con trỏ đến khi nào gặp kí tự ‘\0’ thì dừng. ví dụ khi bạn in

char *c = "adsasd";
// hoac c[] = "asdasd";
printf("%s", c);

thì c cũng là con trỏ mà.

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