Relational > Equality operator: -> a c -> (a c) -> ((a c) (Associativity left-right) -> ((10 30) -> ((1)) == (1) -> 1 (true) True block will execute and TRUE will be printed
ans: True if(ac) given now have same precedence and their associativity is from left to right. initially ac also gives so now 1==1 which is true. == has low precedence compared to relational operators like >,>=,
Answer is True. Seeing all the videos from East Africa , planning to appear for GATE in 2021. I am getting confidence by listening to your lectures. Thank you for your extraordinary work. :)
It is the best channel to learn programming , i have watched many other channels , but i was not satisfied , but today I saw this channel and watched few videos and i am satisfied, now I have started to understand everything, thanks a lot
Sir, I am an avg student of cse 😢. I watched ur videos one day before exam the difference between ur channel and other channels is this channel provides deep concept , examples and questions for students. Thank you soo much sir.
a).True if(ac) given Now have the same precedence and their associativity is from left to right. Initially, ac also gives so now 1==1 which is true. == has low precedence compared to logical operators like >,>=,
very nice channel for learning each concept and logics in C programming. #include #define x printf("THANK U SO MUCH NESO ACADEMY") int main() { x; return 0; }
Comments for myself: Associativity is order of evaluation when expressions have the same precedence, could be left-to-right or vice versa. Postfix increment/decrement has greater precendence than prefix. Associativity of postfix operator is from left to right, while prefix is from right to left. Only the assignment, conditional, and unary operators have an associativity of right to left. Associativity only works of we have more than ONE operators of same precedence. If only one, the behavior is undefined and output is compiler dependent. For the assignment, the output is TRUE
I just dont understand how the brains of the people who have disliked the vedio work, really I don't just get it. May be undertanding them is more complicated than C language.
if(ac) in this expression left to right associativity is there a30 now 1==40 returns false means 0 now 0>30 returns true means 1 if(1) means true so TRUE will be the answer
@ 14:28 example, Why is Neso Academy bring printed ? 1) variable "a " is an type. 2) The function is returning only 1 not Neso. and why does it return Neso ?
Ans will be true because having same precedence but due to left to right associativity . Here, ac also results 1 and then == will execute which prints true.
1. we have a condition expression --> (a c) 2. Relational precedence is higher than equality precedence therefore, . 'b' belong to '' operator ---> (d > c), which return TRUE . according to Associativity order Left to Right: (a C) 3. finally Equality will be evaluated (1 == 1), therefore the if construct will return TRUE
so what happen in the last question is that (ac). so there are 2 relational operator and 1 equality operator or u can say (a relational operator b equality operator d relational operator c). so relationall operator has higher precedence and it goes from left to right then (1030), 1030 that s also true (1) then 1==1 true == true that s also true, so TRUE
Sir I have a doubt. Could you explain the reason for such behaviour. #include int main() { int a=10; int b= ++a + a++; printf("%d ",b); return 0; } Output : 23 But expected answer is 22 because first postfix will be evaluated then prefix and sum and at last assignment b= 12+10 Sir please explain this.
int main(void) { int a=10, b=20, c=30, d=40; int expr = (a c); printf("%s", expr ? "true" : "false"); return 0; } In this example "true" get printed out. Because, "" operators take precedence over "==" operator, so both "" evaluated first then "==" operator: (10 30) Both (10 30) return true, which it is represented by 1 (or any non-zero), so the expression expanded like that: (1 == 1) Now because of (1 == 1) returns true (non-zero), "true" get printed, otherwise "false" keyword would have been printed.
Don't know, because (a c) is also true and return non zero. And finally if(non zero == non zero) sometimes equal or not equal. Therefore I can't predict the answer all times. So it may be compiler dependent.
At 11:52, in 3rd statement there are 2 operators of same precedence i.e. () nd consist higher precedence than + then associativity should be left to right and hence fun1() should be called first then why it is unpredictable...I don't know if it's silly bt I didn't get it.....plz explain
See that statement very carefully, there are only two operators, () and +. There are two occurences of () but overall there are only two operators to work with, i.e, () and + Associativity comes into picture when there are two or more than two operators of SAME PRECEDENCE. By two ore more operators, it simply means two are more different operators of same precedence. Please make a note of this that two or more *different* operators but of same precedence, then associativity will decide which will be evaluated first. Do you get it now? And it's not silly, actually first look pe ye misconception hona is okay, ho jata hai
Sir I have a doubt. int a= 10; int b=10; int c= a+ b+a++; Output : 30 But if we follow precedence then first a++ will be solved and then sum will be solved and answer would be 31 c= 11+10+10 Sir please explain this.
are you still here? according to postfix increment which was mentioned before, first the value of 'a' will be use in the equation then it will increment by '1'. so, here value of a = 10 is used in the equation first then after completing the equation and and returning value 30 to 'c', a will increment by 1. a will not increment first and be '11' then get used, it will be used first as '10' then after completing the equation a will increment by 1. print the value of a after the equation of c if that's correct or not. Hope you understood what I wanted to say ..!
@@kishanchaurasia2909 quite confusing. According to Neso, rule of postfix in equation is that it will use in equation first then it will increment by 1. (sorry, I talked about completing the equation. I was wrong. Completing the equation comes in light in terms of prefix increment/decrement in equation) You can see the details in video-24 in this playlist, in case you din saw. And with that explanation c=a+a++; seems right. Now about that previous question you asked I guess there's a trick behind that question which I, as a beginner won't be able to find out. I'm just as confused as you are right now. Anyway, if you find the answer, then please don't forget to share it here else I'll crack my head over and over. I hope sir see this problem and reply soon. Or anyone else who figured it out reply here. I guess I'm gonna post this problem on different programming groups in facebook to find out. Anyway, Thanks. You mentioned quite a tricky problem here.
@@kishanchaurasia2909 here in the expression c=a+a++ ...we have two operators one is '+' and another is '++'( postfix increment operator) .a postfix increment operator has higher precedence than the unary plus operator so.. in this expression, C=a+a++ -firstly a++(postfix operator) will be evaluated, in this 1st 10 is assigned to a and then incremented ..as it is incremented the value of a changes to 11 -hence 11 is substituted in place of a which is the left operand so.. 11 is added to 10 hence the output will be 21 I.e , c=11+10 c=21 I hope you understand!!🙃🙃
Bro you have just commented same thing in almost each lectures I have gone through. By the way those who r disliking may be having more knowledge but if you have more knowledge what the hell r u doing here😂
the answer is TRUE. BECAUSE the relational operators has more precedence than equality operators, so (ac), here same precedence so associativity is from left to right, hence both returns true which means 1==1 and it is also true so the final O/P is; T R U E.....................................
Output is true, because relation operater will return only true or false, here will perform because it is left to right associative both are returning true and both == same.
In the first example if fun is variable with value assigned to it as 0 then if the expression is like this " int var = fun++" then why the value of var becomes 0 as ++ has higher precedence than = so var should have the value of 1.
Bro I have a question, you said, "Precedence of Postfix increment / decrement is greater than prefix increment/ decrement" I think this is not true, prefixes are always performed first and assigned, rather than Postfixes. Correct me if I am wrong.
Precedence only controls which operators are grouped with which operands; it does not control the order in which operands are evaluated. It doesn’t help that the behavior of the - and ++ operators are not straightforward. ++x _evaluates_ to x+1 - as a *side effect* it changes the value of x, but that side effect does not have to be applied immediately. If you write something like x = ++y, it’s *roughly* equivalent to writing tmp = y + 1 x = tmp y = y + 1 except that the order in which x and y are updated isn’t fixed. Similarly, x = y++ is roughly equivalent to tmp = y x = tmp y = y + 1 with the same caveat that the order in which x and y are updated isn’t fixed. But yes, unary ++ has lower precedence than postfix ++. If such an expression were legal, ++x++ would be parsed as ++(x++). However, such an expression is *illegal* - the operand of the ++ operator (either form) must be an lvalue (something that can be the target of an assignment), but the result of x++ is not an lvalue.
Sir i am a cse student.... C is the 1st language for a cse student... I never forget you in my life
Are you there, hello..!
Serving people is serving humanity....nice job luv it
Serving people = serving God .
@@dynxmit3official920 Yay!
@@dynxmit3official920 serving people != serving god
Relational > Equality operator:
-> a c
-> (a c)
-> ((a c) (Associativity left-right)
-> ((10 30)
-> ((1)) == (1)
-> 1 (true)
True block will execute and TRUE will be printed
thanks bhai
@@FireUpBITSPILANI thank you very much
I also did the same but in my mind!
ans: True
if(ac) given
now have same precedence and their associativity is from left to right. initially ac also gives so now 1==1 which is true. == has low precedence compared to relational operators like >,>=,
How does ac also....plz reply I really need to know!!!!!!!!!!!!
@@awsomeindia1295 a
@@vishaliravichandran1314 thank u so much for explaining this😄😄
@@awsomeindia1295 sun if some thing is true it return 1
In if condition it is true == true right??
This guy is going straight to haven 🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
you r rit
Yeah!✨
Yes heaven
We dont go to ravenholm
Fire symbolises hell
Bruh he is alive & saving people why do you want to kill him now 😂 or atleast why speak of his death.
Answer is True. Seeing all the videos from East Africa , planning to appear for GATE in 2021. I am getting confidence by listening to your lectures. Thank you for your extraordinary work. :)
gat me asy question kab aty hen...gat me gk, genral math etc ata zyda
@@kamilmusic9929 ????
@@nagashayanreddy7237 sir gate me programming aati h ?
@@nagashayanreddy7237 bro if you're indian then what're you doing in east africa?
Did you appear for gate bro?
As relational operator has higher precedence a c turns to 1. Therefore 1==1. Hence true will be printed because if block will get executed.
Thanks!
It is the best channel to learn programming , i have watched many other channels , but i was not satisfied , but today I saw this channel and watched few videos and i am satisfied, now I have started to understand everything, thanks a lot
Sir, I am an avg student of cse 😢. I watched ur videos one day before exam the difference between ur channel and other channels is this channel provides deep concept , examples and questions for students. Thank you soo much sir.
a).True
if(ac) given
Now have the same precedence and their associativity is from left to right. Initially, ac also gives so now 1==1 which is true. == has low precedence compared to logical operators like >,>=,
Assignment answer is: true(as 1030 is also true and both cases are compared with equality operator so it is true.)
Hello sir , I don't know u ll see my comment or not but u r god for the students who have eager to learn c language .
Neso is best 👍
Tq so much i gone theough many websites but this is the 1 which fastly understand and went into my mind 😊😊
very nice channel for learning each concept and logics in C programming.
#include
#define x printf("THANK U SO MUCH NESO ACADEMY")
int main()
{
x;
return 0;
}
you are great sir (: the way you are clear all concepts is awesome please upload more computer science subjects so that we people will helpful.
16:10 and the answer comes out to be True
thanks Neso❤
Luv it..❤your content are really very easy to understand and that question u provide at the end...is a bliss..💓💓keep working like that
Thankyou very much. I have started C programming lectures in Hindi. you are helping me a lot.
(ac) presedence:2
== Presidence:3
Answer: true
a=10 , b=20 , c=30 , d=40 ;
( a c)
Explanation :
(10 30)
Here first ...10
Thanks for answering...it helped me to understand ❤️🤝
Sir please compelete the C programming series it will be useful for our placements....please sir. Your video are really good.Thank you so much sir..
You are the real hero sir........ 🙏🙏🙏🙏🙏
Comments for myself: Associativity is order of evaluation when expressions have the same precedence, could be left-to-right or vice versa. Postfix increment/decrement has greater precendence than prefix. Associativity of postfix operator is from left to right, while prefix is from right to left. Only the assignment, conditional, and unary operators have an associativity of right to left. Associativity only works of we have more than ONE operators of same precedence. If only one, the behavior is undefined and output is compiler dependent. For the assignment, the output is TRUE
a30] which is true
ac
True==true
So, output is true😊
Is it correct ??????
Thanks a lot sir for these types of great videos...
i can't know how can i thank you
great content ..... thank you very much 💙💙💙💙💙💙
You are the god for many students sir love you ❤️
I just dont understand how the brains of the people who have disliked the vedio work, really I don't just get it. May be undertanding them is more complicated than C language.
The output of the homework problem is TRUE.👍
The answer for the question is True. Thanks for the great explanation 😍😍
Superb explanation 👍
You are insane man!! 🔥🔥🔥
Thank you so much, bro, you explain this so well; I'm set for success in my class moving forward
Ans is true....i understand the concept very well☺..thakiieeww soo mch...
home works answer is true
thank u so much to give such a great content free of cost
everyone underestimates precedence and associativity without knowing that they are the most important topics...
Right
mohit,vai...
i can't memotize this associativity & precedence table. Please help me, if possible
@@tawseeftaher4446 practice bro... Do practice
the ans is true ,
explanation :-
if(ac)
{
cout
Thank u bro or explanation
This the best channel👌👌👌
this your video is best and is this is fully complete series for gate sir plz tell i am following your series
if(ac) in this expression left to right associativity is there
a30
now 1==40 returns false means 0
now 0>30 returns true means 1
if(1) means true so TRUE will be the answer
Very well understood everything. Thanks you sir 🤗🤗
Thank you so much sir...you defined it with..minute details
@ 14:28 example, Why is Neso Academy bring printed ?
1) variable "a " is an type.
2) The function is returning only 1 not Neso. and why does it return Neso ?
True is the answer of the homework problem................
Ans will be true because having same precedence but due to left to right associativity . Here, ac also results 1 and then == will execute which prints true.
1. we have a condition expression --> (a c)
2. Relational precedence is higher than equality precedence therefore,
. 'b' belong to '' operator ---> (d > c), which return TRUE
. according to Associativity order Left to Right: (a C)
3. finally Equality will be evaluated (1 == 1), therefore the if construct will return TRUE
Thank you so so so so so much sir....really helpful and detailed video
Thankyou For these Lectures Sir :)
Since the
U r awesome Sir doing a great job....
Answer is True.
Because ,d>c is true that is 1
and a
as per ac
a belongs to
so precednce applies
(ac)
in this case we have only one operator == so there is no need to apply associativity
good initiative
thanks for this wonderful video
so what happen in the last question is that (ac). so there are 2 relational operator and 1 equality operator or u can say (a relational operator b equality operator d relational operator c). so relationall operator has higher precedence and it goes from left to right then (1030), 1030 that s also true (1) then 1==1 true == true that s also true, so TRUE
one video in 2 day means syllabus finish before gate 2019 we can expect with you thanks
ans=true;
#include
int main()
{
int a=10,b=20,c=30,d=40;
if (a c)
{
printf("true");
}
else
{
printf("false");
}
return 0;
}
Sir I have a doubt.
Could you explain the reason for such behaviour.
#include
int main()
{
int a=10;
int b= ++a + a++;
printf("%d
",b);
return 0;
}
Output : 23
But expected answer is 22 because first postfix will be evaluated then prefix and sum and at last assignment
b= 12+10
Sir please explain this.
Very nice explanation, my all doubts get clear.
Sir plz make videos on cmos basics and its gate implementation.🙏🙏
Your videos are helping me alot thank you so much🙏🙏😊
int main(void) {
int a=10, b=20, c=30, d=40;
int expr = (a c);
printf("%s", expr ? "true" : "false");
return 0;
}
In this example "true" get printed out. Because, "" operators take precedence over "==" operator, so both "" evaluated first then "==" operator:
(10 30)
Both (10 30) return true, which it is represented by 1 (or any non-zero), so the expression expanded like that:
(1 == 1)
Now because of (1 == 1) returns true (non-zero), "true" get printed, otherwise "false" keyword would have been printed.
Answer of the question of this lession:
True
So much attractive content thanks for it. Ans. True
Excellent
(2+3)*5 =25 it is correct and it is called distributive property of multiplication over addition, 5*2+5*3=25
✔️
sir i have a doubt in 14:11 part why there is a 2 in both outputs but in the code there is no 2
please answer my doubt
Tussi great ho Sir ji
True
Thank you, Sir
Sir.u pin correct answers.and I enjoy ur series ❤❤
Don't know, because (a c) is also true and return non zero. And finally if(non zero == non zero) sometimes equal or not equal. Therefore I can't predict the answer all times. So it may be compiler dependent.
but in relational operator(==) non zero value is taken as true so, true(any non zero value)== true ,
so result is true..
At 11:52, in 3rd statement there are 2 operators of same precedence i.e. () nd consist higher precedence than + then associativity should be left to right and hence fun1() should be called first then why it is unpredictable...I don't know if it's silly bt I didn't get it.....plz explain
See that statement very carefully, there are only two operators, () and +. There are two occurences of () but overall there are only two operators to work with, i.e, () and +
Associativity comes into picture when there are two or more than two operators of SAME PRECEDENCE.
By two ore more operators, it simply means two are more different operators of same precedence. Please make a note of this that two or more *different* operators but of same precedence, then associativity will decide which will be evaluated first.
Do you get it now?
And it's not silly, actually first look pe ye misconception hona is okay, ho jata hai
@@SandhyaSingh-ms6br yeah got it...thanks😊
if u work like this so we'll no need of rbr sir paid lecture
true bhai
Exactly, his course is not worth in terms of depth. He just makes everything memorise.
are these lectures better than rbr sir paid lecture? plz tell
Super super,😍😍😍😍
@3:48 associativity of * is more than / you only told. Then why here you are saying that associativity of / is more than *
See again
@@AbbaJi-gm4vc can you please explain I have the same doubt
sir in expression (2+3)*5 ,we must have to solve bracket first then the multiplication should be done, isn't it?
Ans is true.because in relational operators priority is ,=,==,=! . so according to this priority ans is considered as true
Advance happy 1m subs ♥️ from Philippines
Thank you :)
I just solved my assignment sir it really helps a lot promise
Sir ,Plz upload more videos on loops,arrays n all the topics of C language, U'r videos are helping me a lotttttt bcozz..Plz..
Great job sir
great video!
Sir I have a doubt.
int a= 10;
int b=10;
int c= a+ b+a++;
Output : 30
But if we follow precedence then first a++ will be solved and then sum will be solved and answer would be 31
c= 11+10+10
Sir please explain this.
are you still here?
according to postfix increment which was mentioned before, first the value of 'a' will be use in the equation then it will increment by '1'.
so, here value of a = 10 is used in the equation first then after completing the equation and and returning value 30 to 'c', a will increment by 1.
a will not increment first and be '11' then get used, it will be used first as '10' then after completing the equation a will increment by 1.
print the value of a after the equation of c if that's correct or not.
Hope you understood what I wanted to say ..!
@@badxcode thanks
@@badxcode please explain this one more
int a=10;
int c=a+a++;
Output is 21
Now if I follow what you said then it must 20 only please explain.
@@kishanchaurasia2909 quite confusing.
According to Neso, rule of postfix in equation is that it will use in equation first then it will increment by 1. (sorry, I talked about completing the equation. I was wrong. Completing the equation comes in light in terms of prefix increment/decrement in equation) You can see the details in video-24 in this playlist, in case you din saw.
And with that explanation c=a+a++; seems right.
Now about that previous question you asked I guess there's a trick behind that question which I, as a beginner won't be able to find out.
I'm just as confused as you are right now.
Anyway, if you find the answer, then please don't forget to share it here else I'll crack my head over and over.
I hope sir see this problem and reply soon. Or anyone else who figured it out reply here.
I guess I'm gonna post this problem on different programming groups in facebook to find out.
Anyway, Thanks. You mentioned quite a tricky problem here.
@@kishanchaurasia2909
here in the expression c=a+a++ ...we have two operators one is '+' and another is '++'( postfix increment operator) .a postfix increment operator has higher precedence than the unary plus operator so.. in this expression,
C=a+a++
-firstly a++(postfix operator) will be evaluated, in this 1st 10 is assigned to a and then incremented ..as it is incremented the value of a changes to 11
-hence 11 is substituted in place of a which is the left operand so.. 11 is added to 10 hence the output will be 21
I.e , c=11+10
c=21
I hope you understand!!🙃🙃
true will be answer
btw sir, do we have to learn the table?
if we consider () paranthesis as an operator then there is more than one operator in the expression fun1() + fun2()
Guys they are providing everything for free and some idots dislikes these types of videos. I think they need mental treatment
They probably would be jealous teachers😟😕
Bro you have just commented same thing in almost each lectures I have gone through. By the way those who r disliking may be having more knowledge but if you have more knowledge what the hell r u doing here😂
ac gives true and true = = true so its print True
the answer is TRUE.
BECAUSE the relational operators has more precedence than equality operators,
so (ac), here same precedence so associativity is from left to right,
hence both returns true which means 1==1 and it is also true so the final O/P is;
T R U E.....................................
Output is true, because relation operater will return only true or false, here will perform because it is left to right associative both are returning true and both == same.
great teaching sir
Explain various operators with its precedence in c.
Explain various operators in c.
Sir this two questions are same or different
() has Left to Right associativity.
So why not first fun1() then fun2() will execute always ??
No man,
When both have same precedence,
Compiler work left to right so fun1() will execute first.
@@mr.knight8967
int a, b, c=3;
a = b = c;
Have same precedence.
*It goes from Right to Left,* not Left to Right.
True..
As relational operators have higher precedence than equality operator.
In the first example if fun is variable with value assigned to it as 0 then if the expression is like this " int var = fun++" then why the value
of var becomes 0 as ++ has higher precedence than = so var should have the value of 1.
sir please make more videos on basic c programming.
output is true
Bro I have a question, you said, "Precedence of Postfix increment / decrement is greater than prefix increment/ decrement"
I think this is not true, prefixes are always performed first and assigned, rather than Postfixes.
Correct me if I am wrong.
Did u solve this a+++b then you can understand
@@kwynart6399 thank you, vai.
it helped me a lot
rajesh
the video is correct brother
Precedence only controls which operators are grouped with which operands; it does not control the order in which operands are evaluated. It doesn’t help that the behavior of the - and ++ operators are not straightforward.
++x _evaluates_ to x+1 - as a *side effect* it changes the value of x, but that side effect does not have to be applied immediately. If you write something like x = ++y, it’s *roughly* equivalent to writing
tmp = y + 1
x = tmp
y = y + 1
except that the order in which x and y are updated isn’t fixed. Similarly, x = y++ is roughly equivalent to
tmp = y
x = tmp
y = y + 1
with the same caveat that the order in which x and y are updated isn’t fixed.
But yes, unary ++ has lower precedence than postfix ++. If such an expression were legal, ++x++ would be parsed as ++(x++). However, such an expression is *illegal* - the operand of the ++ operator (either form) must be an lvalue (something that can be the target of an assignment), but the result of x++ is not an lvalue.
Why at the end 2 comes at the output of question at 14:38
True is the answer 😁 thanks
Which is the best book to follow ?