

{"id":120660,"date":"2023-11-06T18:00:08","date_gmt":"2023-11-06T12:30:08","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=120660"},"modified":"2023-11-06T18:03:28","modified_gmt":"2023-11-06T12:33:28","slug":"c-programming-tricky-interview-questions-part-1","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/","title":{"rendered":"C Programming Tricky Interview Questions Part-1"},"content":{"rendered":"<p>C programming forms the basis of technical interviews at many companies. Interviewers often ask tricky C questions to evaluate a candidate&#8217;s understanding of core concepts like pointers, memory management, and flow control. Mastering such questions is key to successfully clearing coding interviews of C.<\/p>\n<h2>Why Tricky Questions Matter in C Programming Interviews<\/h2>\n<p><strong>Tricky questions in C help assess a candidate&#8217;s:<\/strong><\/p>\n<ul>\n<li>Depth of knowledge in C<\/li>\n<li>Ability to analyze and solve problems<\/li>\n<li>Understanding of edge cases and nuances<\/li>\n<li>Experience debugging complex scenarios<\/li>\n<\/ul>\n<p>This article of mostly asked interview questions of C will equip you with techniques to tackle such questions and explain the thought process behind arriving at solutions.<\/p>\n<h3>Tricky Question 1: Pointers and Arrays in C<\/h3>\n<h4>The Mystery of Pointer Arithmetic<\/h4>\n<p>Pointers and arrays in C have an intimate relationship. Pointer arithmetic in C allows accessing array elements efficiently. But it can also lead to confusing edge cases.<\/p>\n<p><strong>Question 1.1: Swapping Two Integers Using Pointers<\/strong><\/p>\n<p><strong>Problem:<\/strong> Write a code snippet to swap two integer variables, a and b, using pointer arithmetic.<\/p>\n<p><strong>Question 1.2: Finding the Largest Element in an Array Using Pointers<\/strong><\/p>\n<p><strong>Problem:<\/strong> Given an integer array arr of size n, find the largest element in the array using pointer arithmetic.<\/p>\n<p><strong>Solution and Explanation<\/strong><\/p>\n<h4>\/\/ Swapping two integers using pointers<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n\r\nvoid swap(int* a, int* b) {\r\n  int temp = *a;\r\n  *a = *b;\r\n  *b = temp;\r\n}\r\n\r\nint main() {\r\n\r\n  int a = 10, b = 20;\r\n  \r\n  swap(&amp;a, &amp;b);\r\n  \r\n  printf(\"a = %d, b = %d\", a, b);\r\n\r\n  return 0;\r\n}<\/pre>\n<p><strong>\/\/ Output<\/strong><br \/>\na = 20, b = 10<\/p>\n<h4>\/\/ Finding the largest element using pointers<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n\r\nint findLargest(int* arr, int n) {\r\n  int max = *arr; \/\/ assume first element is largest initially\r\n  \r\n  for(int i=1; i&lt;n; i++) {\r\n    if(*(arr + i) &gt; max) {\r\n      max = *(arr + i); \r\n    }\r\n  }\r\n  \r\n  return max;\r\n}\r\n\r\nint main() {\r\n\r\n  int arr[] = {25, 78, 49, 45, 63};\r\n  int n = sizeof(arr)\/sizeof(arr[0]);\r\n  \r\n  int largest = findLargest(arr, n);\r\n  \r\n  printf(\"Largest element is: %d\", largest);\r\n  \r\n  return 0;\r\n}<\/pre>\n<p><strong>\/\/ Output<\/strong><br \/>\n<strong>Largest element is:<\/strong> 78<\/p>\n<h3>Tricky Question 2: Memory Allocation in C<\/h3>\n<h4>Navigating Dynamic Memory Allocation in C<\/h4>\n<p>Dynamic allocation with malloc()\/free() allows flexible memory management. But when used incorrectly, it can lead to bugs.<\/p>\n<p><strong>Question 2.1: Implementing a Custom Memory Allocator<\/strong><\/p>\n<p><strong>Problem:<\/strong> Write a custom memory allocator my_malloc() to allocate requested memory dynamically.<\/p>\n<p><strong>Question 2.2: Detecting Memory Leaks in C Programs<\/strong><\/p>\n<p><strong>Problem:<\/strong> Given a C program, identify potential memory leaks caused by incorrect memory management.<\/p>\n<p><strong>Solution and Explanation<\/strong><\/p>\n<h4>\/\/ Custom memory allocator<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n\r\nvoid* my_malloc(size_t size) {\r\n  void* ptr = malloc(size);\r\n  if(!ptr) {\r\n    printf(\"Memory allocation failed\\n\");\r\n    return NULL;\r\n  }\r\n\r\n  return ptr;\r\n}\r\n\r\nint main() {\r\n  \r\n  int* ptr = (int*)my_malloc(sizeof(int));\r\n  \r\n  if(ptr) {\r\n    *ptr = 100;\r\n    printf(\"Value at ptr = %d\", *ptr);\r\n  }\r\n\r\n  return 0;\r\n}<\/pre>\n<p><strong>\/\/ Output<\/strong><br \/>\nValue at ptr = 100<\/p>\n<p>For question 2.2, examine the code for mismatches between malloc() and free() calls. Also, ensure all allocated memory is freed before program termination to prevent leaks.<\/p>\n<h3>Tricky Question 3: Recursion in C<\/h3>\n<h4>The Depth of Recursion in C<\/h4>\n<p>Recursion allows elegant solutions but can also lead to stack overflows if not written carefully.<\/p>\n<p><strong>Question 3.1: Calculating Fibonacci Numbers Efficiently<\/strong><\/p>\n<p><strong>Problem:<\/strong> Write a recursive C function to calculate the nth Fibonacci number efficiently.<\/p>\n<p><strong>Question 3.2: Implementing a Recursive Binary Search<\/strong><\/p>\n<p><strong>Problem:<\/strong> Implement a recursive binary search algorithm on a sorted integer array.<\/p>\n<p><strong>Solution and Explanation<\/strong><\/p>\n<h4>\/\/ Efficient Fibonacci using recursion<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int fib(int n) {\r\n  if (n == 0 || n == 1) {\r\n    return n;\r\n  }\r\n\r\n  int a = 0, b = 1, c, i;\r\n  for(i = 2; i &lt;= n; i++) {\r\n   c = a + b;\r\n   a = b;\r\n   b = c;\r\n  }\r\n  \r\n  return b;\r\n}<\/pre>\n<p>\/\/ Uses iteration to avoid exponential recursion tree of naive solution.<\/p>\n<h4>\/\/ Recursive binary search<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int binarySearch(int arr[], int l, int r, int x) {\r\n\r\n  if (r &gt;= l) {\r\n    int mid = l + (r - l) \/ 2;\r\n\r\n    if (arr[mid] == x) {\r\n      return mid;\r\n    }\r\n\r\n    if (arr[mid] &gt; x) {\r\n      return binarySearch(arr, l, mid - 1, x);\r\n    }\r\n\r\n    return binarySearch(arr, mid + 1, r, x); \r\n  }\r\n\r\n  return -1;\r\n}<\/pre>\n<p>\/\/ Recursion reduces code complexity compared to iterative solutions.<\/p>\n<p>Recursion elegantly solves problems like Fibonacci and Binary Search. Care must be taken to avoid costly repeated function calls.<\/p>\n<h3>Tricky Question 4: Preprocessor Directives in C<\/h3>\n<h4>Unraveling the Power of Macros<\/h4>\n<p>Preprocessor macros enable metaprogramming but can also lead to unexpected outcomes.<\/p>\n<p><strong>Question 4.1: Creating a Custom ASSERT Macro<\/strong><\/p>\n<p><strong>Problem:<\/strong> Implement a C macro ASSERT() for debugging that prints an error and exits if the condition is false.<\/p>\n<p><strong>Question 4.2: Conditional Compilation with Macros<\/strong><\/p>\n<p><strong>Problem:<\/strong> Use preprocessor directives for conditional debugging and logging.<\/p>\n<p><strong>Solution and Explanation<\/strong><\/p>\n<h4>\/\/ Custom ASSERT macro<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n\r\n#define ASSERT(condition, err_msg) \\\r\n  if(!(condition)) { \\\r\n    fprintf(stderr, \"Assertion failed: %s\\n\", err_msg); \\\r\n    exit(1); \\\r\n  }\r\n\r\nint main() {\r\n  int x = 5, y = 10;\r\n  \r\n  ASSERT(x == y, \"x is not equal to y\");\r\n  \r\n  printf(\"Code after ASSERT\\n\"); \/\/ Will not print\r\n\r\n  return 0;\r\n}<\/pre>\n<p>Macros replace code at the preprocessing stage. This allows the implementation of language extensions like ASSERT.<\/p>\n<p>For question 4.2, use #ifdef DEBUG &#8230; #endif to conditionally execute debugging\/logging code only in debug builds.<\/p>\n<h3>Tricky Question 5: if-else Statements in C<\/h3>\n<p><strong>Question 5.1: Printing a Name Without Using a Semicolon<\/strong><\/p>\n<p><strong>Problem:<\/strong> Print your name using if-else statements without ending the statement with a semicolon.<\/p>\n<p><strong>Question 5.2: Predicting the Output of Complex If\/Else Statement<\/strong><\/p>\n<p><strong>Problem:<\/strong> To print numbers from 1 to 100, create a C program. Print &#8220;Fizz&#8221; instead of the number for multiples of 3 and &#8220;Buzz&#8221; for multiples of 5. Print &#8220;FizzBuzz&#8221; for values that are multiples of both 3 and 5.<\/p>\n<p><strong>Solution and Explanation<\/strong><\/p>\n<h4>\/\/ Print name without semicolon<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n\r\nint main() {\r\n  if(1) \r\n    if(1)\r\n      printf(\"John\");\r\n  else\r\n    printf(\"Doe\");\r\n\r\n  return 0;\r\n}<\/pre>\n<h4>\/\/ Nested ifs allow printing without a semicolon.<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#include &lt;stdio.h&gt;\r\n\r\nint main() {\r\n\r\n  for(int i=1; i&lt;=100; i++) {\r\n    \r\n    if(i%3 == 0 &amp;&amp; i%5 == 0) {\r\n      printf(\"FizzBuzz\\n\");\r\n    }\r\n    else if(i%3 == 0) {\r\n      printf(\"Fizz\\n\");\r\n    }\r\n    else if(i%5 == 0) {\r\n      printf(\"Buzz\\n\");\r\n    }\r\n    else {\r\n      printf(\"%d\\n\", i); \r\n    }\r\n  }\r\n\r\n  return 0;\r\n}<\/pre>\n<p><strong>\/\/Output<\/strong><\/p>\n<p>1<br \/>\n2<br \/>\nFizz<br \/>\n4<br \/>\nBuzz<br \/>\nFizz<br \/>\n7<br \/>\n8<br \/>\nFizz<br \/>\nBuzz<br \/>\n11<br \/>\nFizz<br \/>\n13<br \/>\n14<br \/>\nFizzBuzz<br \/>\n16<br \/>\n&#8230;<br \/>\n&#8230;<br \/>\nBuzz<br \/>\n97<br \/>\n98<br \/>\nFizz<br \/>\nBuzz<\/p>\n<h3>Tricky Question 6: Increment and Decrement Operators in C<\/h3>\n<p><strong>Question 6.1: Evaluating Expression x = 5; y = x++ + ++x &#8211; &#8211;x + x&#8211;<\/strong><\/p>\n<p><strong>Problem:<\/strong> Determine the value of x and y after the given expression.<\/p>\n<p><strong>Question 6.2: Predicting the Output of Complex Increment\/Decrement Sequences<\/strong><\/p>\n<p><strong>Problem:<\/strong> Given the following code snippet, predict the final values of x and y:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">int x = 5, y = 10;\r\nx++;\r\ny--;\r\n++x; \r\n--y;\r\nx++;\r\ny--;<\/pre>\n<p><strong>Solution and Explanation<\/strong><\/p>\n<p><strong>For 6.1, x = 5 originally. Expression is evaluated as:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">y = 5 + 7 - 6 + 5 = 11\r\nx = 5<\/pre>\n<p><strong>For 6.2, Let&#8217;s evaluate the code step-by-step:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Initial values: x = 5, y = 10\r\n\r\nx++; \/\/ x = 6\r\ny--; \/\/ y = 9\r\n\r\n++x; \/\/ x = 7 (pre-increment)\r\n--y; \/\/ y = 8 (pre-decrement)\r\n\r\nx++; \/\/ x = 8 (post-increment)\r\ny--; \/\/ y = 7 (post-decrement)\r\n\r\nTherefore, final values after complete execution are:\r\n\r\nx = 8\r\ny = 7<\/pre>\n<p><strong>The key things to notice are:<\/strong><\/p>\n<p>Difference between pre and post-increment\/decrement<br \/>\nOrder in which each statement is executed<\/p>\n<h3>Conclusion<\/h3>\n<p>Mastering tricky C programming interview questions is a vital skill for acing interviews. This article covered key problem areas like pointers, memory allocation, recursion, data structures, and increment\/decrement operators. Analyzing edge cases, understanding nuances, and tracing logical flow are crucial. With rigorous preparation on such questions, you can demonstrate comprehensive C programming knowledge. Practice problems hone the analytical abilities needed for software roles. Strive to write clean, readable code. Mastering core concepts will open up exciting career opportunities.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C programming forms the basis of technical interviews at many companies. Interviewers often ask tricky C questions to evaluate a candidate&#8217;s understanding of core concepts like pointers, memory management, and flow control. Mastering such&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":120662,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19488],"tags":[28343,23914,28345,28346,28344],"class_list":["post-120660","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-programming","tag-c-interview-question","tag-c-programming","tag-interview-question","tag-interview-question-in-c","tag-tricky-interview-question-in-c"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C Programming Tricky Interview Questions Part-1 - DataFlair<\/title>\n<meta name=\"description\" content=\"Interviewers often ask tricky C questions to evaluate a candidate&#039;s understanding of core concepts like pointers, memory management, and flow control.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C Programming Tricky Interview Questions Part-1 - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Interviewers often ask tricky C questions to evaluate a candidate&#039;s understanding of core concepts like pointers, memory management, and flow control.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-06T12:30:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-06T12:33:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/interview-questions-in-c-part-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C Programming Tricky Interview Questions Part-1 - DataFlair","description":"Interviewers often ask tricky C questions to evaluate a candidate's understanding of core concepts like pointers, memory management, and flow control.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/","og_locale":"en_US","og_type":"article","og_title":"C Programming Tricky Interview Questions Part-1 - DataFlair","og_description":"Interviewers often ask tricky C questions to evaluate a candidate's understanding of core concepts like pointers, memory management, and flow control.","og_url":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2023-11-06T12:30:08+00:00","article_modified_time":"2023-11-06T12:33:28+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/interview-questions-in-c-part-1.webp","type":"image\/webp"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"C Programming Tricky Interview Questions Part-1","datePublished":"2023-11-06T12:30:08+00:00","dateModified":"2023-11-06T12:33:28+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/"},"wordCount":805,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/interview-questions-in-c-part-1.webp","keywords":["c interview question","c programming","interview question","interview question in c","tricky interview question in c"],"articleSection":["C Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/","url":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/","name":"C Programming Tricky Interview Questions Part-1 - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/interview-questions-in-c-part-1.webp","datePublished":"2023-11-06T12:30:08+00:00","dateModified":"2023-11-06T12:33:28+00:00","description":"Interviewers often ask tricky C questions to evaluate a candidate's understanding of core concepts like pointers, memory management, and flow control.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/interview-questions-in-c-part-1.webp","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2023\/09\/interview-questions-in-c-part-1.webp","width":1200,"height":628,"caption":"interview questions in c part 1"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/c-programming-tricky-interview-questions-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"C Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/c-programming\/"},{"@type":"ListItem","position":3,"name":"C Programming Tricky Interview Questions Part-1"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/120660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=120660"}],"version-history":[{"count":7,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/120660\/revisions"}],"predecessor-version":[{"id":124789,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/120660\/revisions\/124789"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/120662"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=120660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=120660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=120660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}