C_77 Pointers in C- part 7 | Pointer Arithmetic (Increment/Decrement) program

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 พ.ย. 2024

ความคิดเห็น • 206

  • @balkrishnabane1392
    @balkrishnabane1392 2 ปีที่แล้ว +21

    13:59
    int a[]={3,2,67,0,56};
    int *p;
    p=&a[3];
    in increment decrement it has right to left precedence, So the 3rd (*--p) will be solved frst
    the 3rd *--p will decrement and then the value of p will be used for the next expression
    initial value for *p=a[3] = 0
    3rd. *--p = decrement to a[2] = 67
    2nd. *--p= decrement to a[1] = 2
    1st. *--p= decrement to a[0] = 3
    output:- 3 2 67

    • @flames_tech
      @flames_tech 2 ปีที่แล้ว +10

      I guess 2,3 and garbage value bro..

    • @nguyendinhbac7165
      @nguyendinhbac7165 2 ปีที่แล้ว +2

      @@flames_tech no, because he set *p=a[3] ! his result is true !

    • @helloworld2054
      @helloworld2054 2 ปีที่แล้ว +4

      @@nguyendinhbac7165 but ma'am changed it to a[2] later

    • @LIPUN_GAMERZ
      @LIPUN_GAMERZ หลายเดือนก่อน +1

      You are right 👍
      ​@@flames_tech

  • @amitprasadiitg2564
    @amitprasadiitg2564 3 ปีที่แล้ว +18

    p++ pahle print kro phir increment kro
    ++p pahle increment kro phir print kro

  • @andydufresne436
    @andydufresne436 4 หลายเดือนก่อน +4

    16:04 printf ("%d %d", *p++ , *p++); // ABNORMALITY in this Code..
    The post - inc/dec has associativity , L -> R .
    But the result, shown seems to be executed from R -> L ('2 3' is output instead of '3 2').
    From chatgpt, "The order of evaluation, of function arguments is unspecified in C. It may vary with compilers."
    printf is a function and here each p++ may be an argument. Hence the variation in order.
    Conclusion : It's better to not use, more than 1 increment or decrement operator in a Single line of code , to avoid abnormal behaviour.
    By the way, Thanks Jenny for this amazing lecture series❤

    • @andydufresne436
      @andydufresne436 4 หลายเดือนก่อน +1

      Also, I read that, arguments of printf are evaluated from Right to Left ⬅️ . But when I printed,
      printf("%d %p", *p++, p); // result= a[0] &a[1]
      printf("%d %p", *p, p++); // result= a[1] &a[0]
      It means, whatever the order is, argument with increment is executed at 1st, (for post-inc, the original value of the p is assigned for the ++ argument and then incremented for the next argument.
      for *p++, it is assigned with address of p and print a[0], Now p= &a[1], and it is printed in the place of p.
      for p++, it is assigned with address of a[0] and print a[0], Then p is incremented, p=&a[1] and *p = a[1] is printed.
      Conclusion again : Inc/dec operator itself is dangerous☠️😅

  • @rakshithcc5488
    @rakshithcc5488 3 ปีที่แล้ว +36

    14:59 answer is garbage value,3,2

  • @tanishaagarwal8497
    @tanishaagarwal8497 2 ปีที่แล้ว +15

    2:15 lecture starts

  • @nguyendinhbac7165
    @nguyendinhbac7165 2 ปีที่แล้ว +17

    The teacher's lectures are amazing! greetings from Vietnam !

  • @devSackey
    @devSackey ปีที่แล้ว +7

    The answer is garbage value, 3, 2;
    Youve made pointers so easy mum;

  • @maryannemuthoni5388
    @maryannemuthoni5388 10 หลายเดือนก่อน +1

    #include
    int main(void)
    {
    int a[] = {3, 2, 67, 0, 56};
    int *p = &a[3];
    printf("%d %d %d", *--p, *--p, *--p);
    return 0;
    }
    This will give 67, 2, 3
    Assosciativity is Right to left so the first *--p at the end is evaluated and since it's pre decrement p moves from holding the address of p[3] to p[2] so this prints the value 67, the next *--p moves from p holding address of p[2] to p[1] so value at p[1] which is 2 is printed. The last *--p moves p from holding address of p[1] to address of p[0]. It prints value 3 that is at p[0]

  • @741ibrahim2
    @741ibrahim2 2 ปีที่แล้ว +20

    the basic difference between *p++ is here we are incrementing the adresses but in case of (*p)++ means we are incremwnting its value:
    eg:->
    int a[5]={50,1,-1,10,18};
    int *p=&a[4];
    printf("%d
    ",(*p)--);// ans= 18
    printf("%d
    ",*p);// ans=17
    in case of :->
    int a[5]={50,1,-1,10,18};
    int *p=&a[4];
    printf("%d
    ",*p--);// ans= 18
    printf("%d
    ",*p);// ans=10

  • @marduktr
    @marduktr ปีที่แล้ว +3

    11:06
    printf("%d %d",*p++ ,*p++);
    it is undefined behaviour. my compiler(visual studio 2019) returns 3 -3 for example.

  • @praveenthammishetti6342
    @praveenthammishetti6342 4 หลายเดือนก่อน +3

    1st ans is garbage value,3,2

  • @yogeshchauhan9401
    @yogeshchauhan9401 ปีที่แล้ว +8

    At 11:29 it should be 3,2 as associativity is from left to right .

    • @thilakparamasivan8409
      @thilakparamasivan8409 ปีที่แล้ว +3

      I too have that doubt

    • @SN-edits4u
      @SN-edits4u ปีที่แล้ว

      Associativity is from right to left, (

    • @SN-edits4u
      @SN-edits4u ปีที่แล้ว +1

      And answer is also correct, it would be 2 3

    • @roxi-345
      @roxi-345 11 หลายเดือนก่อน

      @@SN-edits4u my compiler returned 3,2. Can you please explain why?

  • @محمدانور-ج8ش
    @محمدانور-ج8ش 3 ปีที่แล้ว +14

    Thanks my teacher for everything ❤️🌹I understood this lesson after I have saw your episode

  • @shivendra3019
    @shivendra3019 3 ปีที่แล้ว +95

    Jenny the Robot

  • @venkateshhanumanthu9784
    @venkateshhanumanthu9784 หลายเดือนก่อน

    Thank you so much mam,your are the best teacher i never ever saw in my life,your teaching skills amazing❤

  • @arihantjain3068
    @arihantjain3068 2 ปีที่แล้ว +5

    At 11:00
    When i run
    printf("%d %d",*p++,*p++);
    my output coming is. : 3 2
    But according to you it should be 2 3.

    • @Sheukh-j6m
      @Sheukh-j6m 2 ปีที่แล้ว

      Same iam getting

    • @gyanendarkaur2283
      @gyanendarkaur2283 2 ปีที่แล้ว

      Can u pls tell in which complier u are performing programs?

    • @ourculture7079
      @ourculture7079 ปีที่แล้ว

      It is post increment associativity is from left to right
      In pre-increment associativity is from right to left

    • @ananyaghosh6402
      @ananyaghosh6402 ปีที่แล้ว

      See 17:40

    • @vaishnavigoswami5707
      @vaishnavigoswami5707 ปีที่แล้ว

      Actually different compilers have different order of evaluation of printf statement
      Generally it is right to left

  • @NASICMEDIA
    @NASICMEDIA ปีที่แล้ว +4

    Your explanation are so simple and easy to understand. I'm studying programming fundamentals and your videos helped me so much. Thank you very much 🙏🙏

  • @vimala7830
    @vimala7830 3 ปีที่แล้ว +7

    Your every video is very clear mam. Thanks for your understandable lecture ☺️

  • @sandepaganaresh969
    @sandepaganaresh969 3 ปีที่แล้ว +10

    Thank u so much sister for spreading your knowledge... I like very much the way of your teaching... Keep support us and we will always support you sister... Thank u thank u so much....

  • @maryannemuthoni5388
    @maryannemuthoni5388 10 หลายเดือนก่อน +5

    #include
    int main(void)
    {
    int a[] = {3, 2, 67, 0, 56};
    int *p = &a[3];
    printf("%d
    ", --(*p));
    printf("%d
    ", (*p)++);
    printf("%d
    ", ++(*p));
    return 0;
    }
    This will give -1, -1, 1
    In the first printf, *p value is 0 then with pre decrement it becomes -1
    In the second printf *p is -1 so it's -1++ which is post increment so -1 is printed but the actual value is now 0.
    In the third printf it's pretty increment so the 0 becomes 1

  • @hasanmahmud4543
    @hasanmahmud4543 2 ปีที่แล้ว +4

    Wish to present before you &thank you from bottom of my heart.💜
    from bangladesh

  • @dudekuladastagiri7453
    @dudekuladastagiri7453 11 หลายเดือนก่อน +2

    Smile while closing session is awesome mam❤❤❤😊😊😊

  • @vishalsabasagi3011
    @vishalsabasagi3011 2 ปีที่แล้ว +9

    Thank you so much this video cleared my all confusions ❤️❤️

  • @sggffdgcx3769
    @sggffdgcx3769 3 ปีที่แล้ว +8

    Ma'am can you start some coding from geeks for geeks, it will be a great help if you start placement series, from geeks for geeks, Hacker and leet codes.

  • @agkkhan2622
    @agkkhan2622 3 ปีที่แล้ว +1

    Aaj hi padna ka mood aya
    Aaj hi a topic samajhna tha
    Aur
    Aaj hi aapne upload kardiya

  • @karimerradi-n4v
    @karimerradi-n4v วันที่ผ่านมา

    from Ensah Morocco best teacher😍😍😍😍

  • @Raam1827
    @Raam1827 ปีที่แล้ว +5

    Ma'am you said associativity of post increment and decrement is left to right and associativity of pre increment and decrement is right to left in your previous video of associativity video

  • @badalgugnani9876
    @badalgugnani9876 11 หลายเดือนก่อน +1

    Thanku mam.... For explaining things... So simply.. 😊✨💐.....

  • @alexandertheuri444
    @alexandertheuri444 ปีที่แล้ว +6

    #include
    int main()
    {
    int a[ ]={3, 2, 67, 0, 56};
    int *p=&a[0];
    printf("%d", ++*p);
    return 0;
    }
    out puts 4
    Would like to share this at 1st p prints 3 as the aesterick marks it at the base index Then increments the value which is 3 by 1 to out put 4 at the console .

    • @palanisamyj2315
      @palanisamyj2315 ปีที่แล้ว

      👏

    • @andreamerlino7216
      @andreamerlino7216 ปีที่แล้ว +1

      n a standard C environment, the expressions ++*p and *p++ are distinct and have different behaviors.
      ++*p is the pre-increment operator applied to the value pointed to by p. It increments the value before it is used in the expression. So if p points to 3, then ++*p increments 3 to 4, and 4 is the result used in any further expression.
      *p++ is the dereference operator applied to the value pointed to by p, followed by the post-increment operator applied to the pointer p itself. It dereferences the value (fetches the value 3 in this case) and then increments the pointer to point to the next element in the array after accessing the value. The result used in the expression is the original value before the pointer was incremented.

  • @andreamerlino7216
    @andreamerlino7216 ปีที่แล้ว +2

    thanks for the lecture im learning a lot thanks to you I have just a little concern on this topic on incrementation and deference that can happen , I don't know why on your computer is giving you this strange results.
    In a standard C environment, the expressions ++*p and *p++ are distinct and have different behaviors.
    ++*p is the pre-increment operator applied to the value pointed to by p. It increments the value before it is used in the expression. So if p points to 3, then ++*p increments 3 to 4, and 4 is the result used in any further expression.
    *p++ is the dereference operator applied to the value pointed to by p, followed by the post-increment operator applied to the pointer p itself. It dereferences the value (fetches the value 3 in this case) and then increments the pointer to point to the next element in the array after accessing the value. The result used in the expression is the original value before the pointer was incremented.

  • @Constantine808
    @Constantine808 3 ปีที่แล้ว +2

    yes mam please make questions after completing the lecture of C .

  • @bovaskurian1152
    @bovaskurian1152 3 ปีที่แล้ว +6

    Mam
    please do lecture on Object oriented Progming in c++

    • @sujathanarayana2286
      @sujathanarayana2286 3 ปีที่แล้ว

      My favorite computer language is c++

    • @bovaskurian1152
      @bovaskurian1152 3 ปีที่แล้ว

      @@sujathanarayana2286 Do you know this language very well?

  • @misturaojulari9707
    @misturaojulari9707 ปีที่แล้ว +10

    The output of 14:13 will be garbage value, 3, 2
    Thank you so much for the explanations, before watching your videos to this point, I really felt dumb.

    • @JF59122
      @JF59122 ปีที่แล้ว +4

      Isn't it 2,3,garbage value?

    • @JF59122
      @JF59122 ปีที่แล้ว

      @@33_amit okay

    • @charles-henriduclaumonty5066
      @charles-henriduclaumonty5066 ปีที่แล้ว

      Ok but why in the case printf("%d %d",*p++, *p++); it displays result on the other way ?

    • @charles-henriduclaumonty5066
      @charles-henriduclaumonty5066 ปีที่แล้ว

      yeah I know but because 0 WAS the garbage value for me for instance@@33_amit

  • @shiv23575
    @shiv23575 2 ปีที่แล้ว +2

    your each video is very clear mam

  • @megh5013
    @megh5013 2 ปีที่แล้ว +3

    Thanks a lot Mam for this lecture!!!

  • @GoluSingh-og1zv
    @GoluSingh-og1zv 2 ปีที่แล้ว +10

    Garage,3,2

  • @ashishphaltankar
    @ashishphaltankar 3 ปีที่แล้ว +6

    Mam please make a video on String in C programming.

  • @rushikeshkawade9771
    @rushikeshkawade9771 3 ปีที่แล้ว +4

    Best teacher ❤️

  • @mahimakurmi97
    @mahimakurmi97 3 ปีที่แล้ว +3

    Please please make videos on DSA placement specific questions??

  • @prithvi6969
    @prithvi6969 3 ปีที่แล้ว +2

    Me jee aspirant hu mujhe ye subject Ghanta nhi pata par aap bohot cute ho

  • @vanshikagarg7586
    @vanshikagarg7586 ปีที่แล้ว +1

    output is
    some random number
    3
    2

  • @professor340
    @professor340 2 ปีที่แล้ว +2

    Mam pls make vedios on dynamic memory allocation

  • @Gameplay-st7ve
    @Gameplay-st7ve 3 ปีที่แล้ว +5

    hello mam, the last one is showing only 1 1 1. don`t get, please help.

  • @sevestiansays9699
    @sevestiansays9699 2 ปีที่แล้ว +1

    Thankyou Jenny!! You explained it very well!!

  • @sanjanapanwar3844
    @sanjanapanwar3844 3 ปีที่แล้ว +7

    ma'am but post increment operator ki associativity to left to right hena ??

  • @jaijaijaijai123
    @jaijaijaijai123 2 หลายเดือนก่อน +1

    my compiler is following associativity from left to right. I don't know why it is so

  • @VivekVivek-hk6eo
    @VivekVivek-hk6eo ปีที่แล้ว

    be part of subject madam attracted my attention more 🥰

  • @danishalam4405
    @danishalam4405 3 ปีที่แล้ว +6

    Ma'am.When will the classes of C++ start

  • @mahimakurmi97
    @mahimakurmi97 3 ปีที่แล้ว +4

    Thank you so much mam!!❤️❤️

  • @vaibhavbagal9209
    @vaibhavbagal9209 2 ปีที่แล้ว +1

    Spreading knowledge is very usefull to all of us thanku sis

  • @mahendrarajput3449
    @mahendrarajput3449 3 ปีที่แล้ว +2

    thank you my dear mem 🙏, 🙏🙏🙏🙏🙏🙏🙏😍

  • @VADLAMUDIRAMALAKSHMI-co5st
    @VADLAMUDIRAMALAKSHMI-co5st ปีที่แล้ว +1

    Best lecture your lovely student ❤️❤️❤️

  • @Xempire_777
    @Xempire_777 ปีที่แล้ว +2

    char ch =x;
    char *pch=&ch;
    printf(" uppercase is %c",*pch-32);
    output = X;
    according to what you said *pch should return x's address right ?
    or increment/decrement different from adding integers ??
    please clarify doubt ..........

    • @TUCSVIJAYASHARATHIS
      @TUCSVIJAYASHARATHIS ปีที่แล้ว

      bro in the print statement u use that indirectionor dereference operator so only its given captial X i think so but i'm not sure about my answer are correct

  • @parampatel203
    @parampatel203 2 ปีที่แล้ว +3

    Great explanation 🥳

  • @vivekreddy111
    @vivekreddy111 ปีที่แล้ว

    printf("%d",*p++); -> output is 3 , 2 it is will correct ouput maam

  • @yogitelugugaming6730
    @yogitelugugaming6730 ปีที่แล้ว +1

    Thanku jenny

  • @shashank_kishore_
    @shashank_kishore_ หลายเดือนก่อน

    ❤❤❤❤❤❤❤❤❤❤❤❤❤

  • @SravanKumar-uc6qt
    @SravanKumar-uc6qt 3 ปีที่แล้ว +3

    Pointer and arthematics are different

  • @hydrapiyu449
    @hydrapiyu449 ปีที่แล้ว

    Thank you mam your lecture is Very Lovely 😍🌹🌹

  • @ykishore4340
    @ykishore4340 3 ปีที่แล้ว +3

    Is it possible to make GUI, using C library entirely?

  • @shahzebkhan3532
    @shahzebkhan3532 3 ปีที่แล้ว +1

    Make a video on how multidimensional array acts as a pointer when used as formal argument for a function

  • @meghasinha1706
    @meghasinha1706 3 ปีที่แล้ว +2

    Thanks for your efforts mam

  • @SanaNiche214
    @SanaNiche214 6 วันที่ผ่านมา

    Kya mujhe koi samjhayega mam ne right to left q evaluate kiye postfix hone ke baojud bhi postfix ka toh left to right hota hai at qno 9:09

  • @keerthihurkadali3435
    @keerthihurkadali3435 3 ปีที่แล้ว +3

    Please you can tell the c++ course also naa mam🙏

  • @dinesh17999
    @dinesh17999 2 ปีที่แล้ว

    *p++,*p++ for post increment associativity is left to right s
    we should go from left to right why mam said it is from right to left .

    • @simon-gh1pt
      @simon-gh1pt ปีที่แล้ว

      in my compiler it is right to left

  • @सनातनी-श5ध
    @सनातनी-श5ध 2 ปีที่แล้ว +1

    14.3 output- any garbage value,3,2...

  • @vivekagarwal8585
    @vivekagarwal8585 11 หลายเดือนก่อน

    I wrote this program in visual studio
    #include
    #include
    int main()
    {
    int a[] = { 1,2,3,4,5 };
    int* p;
    p = a;
    //p = p + 4;
    printf("%d
    ", *p);
    printf("%d
    %d
    %d
    ", *++p, *++p, *++p);
    return 0;
    }
    Output is:
    1
    4
    4
    4
    It looks to me first it is incrementing the value p 3 times and the start printing.
    ----------------------------
    Same observation in pre-decrementing.
    ---------------------------
    Anything has been changed ?

  • @Unknown-uo7yy
    @Unknown-uo7yy 2 ปีที่แล้ว +2

    for post decrement/increment associativity is left to right, but valuating from right to left . anyone know why

    • @Rishabh11_12
      @Rishabh11_12 2 ปีที่แล้ว +2

      because precedence of post increment/decrement higher than the operator *( asterisk)

    • @dinesh17999
      @dinesh17999 2 ปีที่แล้ว +1

      @@Rishabh11_12 so we should move from left to right but why mam said right to left

    • @adityadadhich3169
      @adityadadhich3169 2 ปีที่แล้ว +2

      Yes I too have a doubt @Rishabh is saying correct

  • @danthamravi5643
    @danthamravi5643 3 ปีที่แล้ว

    Ma'am
    make a video Job's on without coding and programming.

  • @SravanKumar-uc6qt
    @SravanKumar-uc6qt 3 ปีที่แล้ว

    It is right, yha it's taken

  • @BTCIV_AyushMalviya
    @BTCIV_AyushMalviya 2 ปีที่แล้ว +1

    Thankyou Mam

  • @SravanKumar-uc6qt
    @SravanKumar-uc6qt 3 ปีที่แล้ว

    It is coding process right way

  • @ummesalma6669
    @ummesalma6669 ปีที่แล้ว +1

    17:41 mam i am getting output as 3 2 why so mam??

  • @SravanKumar-uc6qt
    @SravanKumar-uc6qt 3 ปีที่แล้ว +1

    Well said madam zi

  • @rogue100
    @rogue100 9 หลายเดือนก่อน +1

    Good lecture but unnecessary lagging,like there is 7 lecture +2 lecture for pointers ,null void pointers with average video length of 20 min😢

    • @higgsboson67
      @higgsboson67 4 หลายเดือนก่อน

      So what's the problem ?

  • @manoharsagunthalla9215
    @manoharsagunthalla9215 2 ปีที่แล้ว +2

    Is it possible to use the increment and decrement operators in for loop to print the array ?

  • @gururajm1
    @gururajm1 3 ปีที่แล้ว +1

    Could you please tell me the gate syllabus for csbs please

  • @vikings.777
    @vikings.777 ปีที่แล้ว

    10:58 ma'am its undefined behavior wright ??

  • @anshulthakur5437
    @anshulthakur5437 3 ปีที่แล้ว +1

    Mam lec 72 is missing from play list

  • @VishalKumar-uu3xm
    @VishalKumar-uu3xm 2 ปีที่แล้ว +1

    🔥🔥🔥

  • @Btech_holder
    @Btech_holder 3 ปีที่แล้ว +2

    finally I came here for thinking about my crush

    • @technicalspider2547
      @technicalspider2547 3 ปีที่แล้ว +2

      Padhai likhai karo IAS bano🤣🤣

    • @Btech_holder
      @Btech_holder 3 ปีที่แล้ว

      @@technicalspider2547 yes bro but I really want her

    • @Btech_holder
      @Btech_holder 3 ปีที่แล้ว

      @jayanth rao why

    • @superduperman6535
      @superduperman6535 3 ปีที่แล้ว

      @@Btech_holder because

    • @goplay5936
      @goplay5936 ปีที่แล้ว

      This is not any crush or romance channel

  • @SravanKumar-uc6qt
    @SravanKumar-uc6qt 3 ปีที่แล้ว

    Right, madam zi

  • @djihanelouali5744
    @djihanelouali5744 ปีที่แล้ว

    Thank you ❤,

  • @nitul5092
    @nitul5092 ปีที่แล้ว

    brilliant explanation

  • @Avinashkumar-dy8bf
    @Avinashkumar-dy8bf 2 ปีที่แล้ว +2

    output is
    garbage value, 3 , 2

  • @niranjan3731
    @niranjan3731 3 ปีที่แล้ว

    Mam jac 12th class computer science with C plus plus ka mcq questions and answers krwayiye plz mam

  • @shiv23575
    @shiv23575 2 ปีที่แล้ว

    i am coplitely understand look your lecture

  • @Eagle_Beats3D
    @Eagle_Beats3D 2 ปีที่แล้ว +1

    Mam can you please make video's in hindi

  • @SravanKumar-uc6qt
    @SravanKumar-uc6qt 3 ปีที่แล้ว

    Body subject is right

  • @jatingupta7725
    @jatingupta7725 ปีที่แล้ว

  • @kartikrana2241
    @kartikrana2241 2 ปีที่แล้ว +1

    👍👍

  • @kushchauhan4116
    @kushchauhan4116 3 ปีที่แล้ว +1

    in c ++ pointer how creat in programming...

  • @pradeeprao2473
    @pradeeprao2473 3 ปีที่แล้ว +2

    ❤️❤️👍

  • @skshabana593
    @skshabana593 3 ปีที่แล้ว

    Maan big fan of you mam

  • @SravanKumar-uc6qt
    @SravanKumar-uc6qt 3 ปีที่แล้ว

    You don't take a bractet in printf statement

  • @kkmodi1
    @kkmodi1 3 ปีที่แล้ว +1

    Mam is so beautiful

  • @KarthikNK-k1c
    @KarthikNK-k1c ปีที่แล้ว

    mam, i am getting like 4011434 something same code which I have written while *--p

  • @kasimshah7665
    @kasimshah7665 2 ปีที่แล้ว +1

    The answer is
    garbage value, 3 , 2
    end of the program!

  • @charles-henriduclaumonty5066
    @charles-henriduclaumonty5066 ปีที่แล้ว

    Maam printf("%d %d",*p++, *p++); why it reads from right to left in this line ? Even chatGPT not able to give me the answer :(((

    • @SPD114
      @SPD114 11 หลายเดือนก่อน

      It is because of the property precedence. I two things have same Associtivity then prefedence comes into picture

  • @pravin.rpravin.r9410
    @pravin.rpravin.r9410 3 ปีที่แล้ว +1

    🥰