{"id":2706,"date":"2024-05-10T11:21:19","date_gmt":"2024-05-10T11:21:19","guid":{"rendered":"https:\/\/www.skillvertex.com\/blog\/?p=2706"},"modified":"2024-05-10T11:21:19","modified_gmt":"2024-05-10T11:21:19","slug":"pointer-arithmetics-in-c-with-examples","status":"publish","type":"post","link":"https:\/\/www.skillvertex.com\/blog\/pointer-arithmetics-in-c-with-examples\/","title":{"rendered":"Pointer Arithmetics In C With Examples"},"content":{"rendered":"\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\" id=\"rank-math-toc\"><p>Table of Contents<\/p><nav><ul><li ><a href=\"#pointer-arithmetics-in-c-with-examples\">Pointer Arithmetics In C With Examples<\/a><\/li><li ><a href=\"#1-increment-decrement-of-a-pointer\">1. Increment\/Decrement of a Pointer<\/a><\/li><li ><a href=\"#2-addition-of-integer-to-pointer\">2. Addition of Integer to Pointer<\/a><\/li><li ><a href=\"#3-subtraction-of-integer-to-pointer\">3. Subtraction \u00a0of Integer to Pointer<\/a><\/li><li ><a href=\"#4-subtraction-of-two-pointers\">4. Subtraction of Two Pointers<\/a><\/li><li ><a href=\"#5-comparison-of-pointers\">5. Comparison of Pointers<\/a><\/li><li ><a href=\"#comparison-to-null\">Comparison to NULL<\/a><\/li><li ><a href=\"#comparison-operators-on-pointers-using-an-array\">Comparison operators on Pointers using an array<\/a><\/li><li ><a href=\"#pointer-arithmetic-on-arrays\">Pointer Arithmetic on Arrays<\/a><\/li><li ><a href=\"#faq-pointer-arithmetics-in-c-with-examples\">FAQ- Pointer Arithmetics In C With Examples<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pointer-arithmetics-in-c-with-examples\">Pointer Arithmetics In C With Examples<\/h2>\n\n\n\n<p>Pointer arithmetic is a set of operations that can be performed on pointers, which are variables that store memory addresses. These operations are different from traditional mathematical calculations because they are performed in the context of memory addresses and the data types they point to.<\/p>\n\n\n\n<p>Some of the operations are done by the pointer in C language. Some of the operations are :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Increment\/Decrement of a Pointer<\/li>\n\n\n\n<li>Addition of integer to a pointer<\/li>\n\n\n\n<li>Subtraction of integer to a pointer<\/li>\n\n\n\n<li>Subtracting two pointers of the same type<\/li>\n\n\n\n<li>Comparison of pointers<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1-increment-decrement-of-a-pointer\">1. Increment\/Decrement of a Pointer<\/h2>\n\n\n\n<p><strong>Increment<\/strong>: When you increment a pointer in C, it moves to the next memory location based on the size of the data it points to. For example, if you have an integer pointer and you increment it, it will jump to the next integer-sized space in memory (usually 4 bytes). The same applies to float pointers; they move by the size of a float (typically 4 bytes) when incremented. This way, pointers stay aligned with the data they point to.<\/p>\n\n\n\n<p><strong>Decrement<\/strong>:  When a pointer is decremented in C, it moves backward by an amount equal to the size of the data type it is pointing to. Your examples illustrate this effectively:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you have an integer pointer and you decrement it, it moves back by 4 bytes (assuming a standard 4-byte integer on most systems).<\/li>\n\n\n\n<li>If you have a float pointer and you decrement it, it also moves back by 4 bytes (assuming a standard 4-byte float).<\/li>\n<\/ul>\n\n\n\n<p>This ensures that when you decrement a pointer, it correctly points to the previous element of the data type it references, no matter the specific data type. Understanding this behavior is crucial when working with pointers and pointer arithmetic to manage memory effectively.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"example-of-pointer-increment-and-decrement\">Example of Pointer Increment and Decrement<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;stdio.h&gt;\n\/\/ pointer increment and decrement\n\/\/pointers are incremented and decremented by the size of the data type they point to \nint main()\n{\n    int a = 22;\n    int *p = &amp;a;\n    printf(\"p = %u\\n\", p); \/\/ p = 6422288\n    p++;\n    printf(\"p++ = %u\\n\", p); \/\/p++ = 6422292    +4   \/\/ 4 bytes\n    p--;\n    printf(\"p-- = %u\\n\", p); \/\/p-- = 6422288     -4   \/\/ restored to original value\n \n    float b = 22.22;\n    float *q = &amp;b;\n    printf(\"q = %u\\n\", q);  \/\/q = 6422284\n    q++;\n    printf(\"q++ = %u\\n\", q); \/\/q++ = 6422288      +4   \/\/ 4 bytes\n    q--;\n    printf(\"q-- = %u\\n\", q); \/\/q-- = 6422284       -4  \/\/ restored to original value\n \n    char c = 'a';\n    char *r = &amp;c;\n    printf(\"r = %u\\n\", r);   \/\/r = 6422283\n    r++;\nprintf(\"r++ = %u\\n\", r);   \/\/r++ = 6422284     +1   \/\/ 1 byte\n    r--;\n    printf(\"r-- = %u\\n\", r);   \/\/r-- = 6422283     -1  \/\/ restored to original value\n \n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>p = 1441900792\np++ = 1441900796\np-- = 1441900792\nq = 1441900796\nq++ = 1441900800\nq-- = 1441900796\nr = 1441900791\nr++ = 1441900792\nr-- = 1441900791<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2-addition-of-integer-to-pointer\">2. Addition of Integer to Pointer<\/h2>\n\n\n\n<p>When you add an integer to a pointer, the integer value is first multiplied by the size of the data type to which the pointer points, and then the result is added to the pointer&#8217;s address.<\/p>\n\n\n\n<p>In your example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have an integer pointer storing the address 1000.<\/li>\n\n\n\n<li>When you add the integer 5 to it with the expression <code>ptr = ptr + 5<\/code>, the final address stored in <code>ptr<\/code> will be calculated as follows: <code>1000 + sizeof(int) * 5<\/code>, which is equal to 1020.<\/li>\n<\/ul>\n\n\n\n<p>This behavior ensures that when you perform pointer arithmetic with an integer value, the pointer correctly advances by the appropriate number of bytes based on the data type&#8217;s size. It&#8217;s an essential concept for navigating and manipulating data structures in memory.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"example-of-addition-of-integer-to-pointer\">Example of Addition of Integer to Pointer<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\n\/\/ C program to illustrate pointer Addition\n#include &lt;stdio.h&gt;\n \n\/\/ Driver Code\nint main()\n{\n    \/\/ Integer variable\n    int N = 4;\n \n    \/\/ Pointer to an integer\n    int *ptr1, *ptr2;\n \n    \/\/ Pointer stores the address of N\n    ptr1 = &amp;N;\n    ptr2 = &amp;N;\n \n    printf(\"Pointer ptr2 before Addition: \");\n    printf(\"%p \\n\", ptr2);\n \n    \/\/ Addition of 3 to ptr2\n    ptr2 = ptr2 + 3;\n    printf(\"Pointer ptr2 after Addition: \");\n    printf(\"%p \\n\", ptr2);\n \n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pointer ptr2 before Addition: 0x7ffca373da9c \nPointer ptr2 after Addition: 0x7ffca373daa<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3-subtraction-of-integer-to-pointer\">3. Subtraction &nbsp;of Integer to Pointer<\/h2>\n\n\n\n<p>When you subtract an integer from a pointer, the integer value is first multiplied by the size of the data type to which the pointer points, and then the result is subtracted from the pointer&#8217;s address.<\/p>\n\n\n\n<p>In your example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have an integer pointer storing the address 1000.<\/li>\n\n\n\n<li>When you subtract the integer 5 from it with the expression <code>ptr = ptr - 5<\/code>, the final address stored in <code>ptr<\/code> will be calculated as follows: <code>1000 - sizeof(int) * 5<\/code>, which is equal to 980.<\/li>\n<\/ul>\n\n\n\n<p>This behavior ensures that when you perform pointer arithmetic with a subtracted integer value, the pointer correctly moves backward by the appropriate number of bytes based on the data type&#8217;s size. This is an important concept when navigating and manipulating data structures in memory.<\/p>\n\n\n\n<p>Example<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\/\/ C program to illustrate pointer Subtraction\n#include &lt;stdio.h&gt;\n \n\/\/ Driver Code\nint main()\n{\n    \/\/ Integer variable\n    int N = 4;\n \n    \/\/ Pointer to an integer\n    int *ptr1, *ptr2;\n \n    \/\/ Pointer stores the address of N\n    ptr1 = &amp;N;\n    ptr2 = &amp;N;\n \n    printf(\"Pointer ptr2 before Subtraction: \");\n    printf(\"%p \\n\", ptr2);\n \n    \/\/ Subtraction of 3 to ptr2\n    ptr2 = ptr2 - 3;\n    printf(\"Pointer ptr2 after Subtraction: \");\n    printf(\"%p \\n\", ptr2);\n \n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pointer ptr2 before Subtraction: 0x7ffd718ffebc \nPointer ptr2 after Subtraction: 0x7ffd718ffeb0<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4-subtraction-of-two-pointers\">4. Subtraction of Two Pointers<\/h2>\n\n\n\n<p>When you subtract two pointers that point to the same data type, the result is calculated by finding the difference between their addresses and then dividing by the size of the data type to determine how many elements (not bytes) separate the two pointers.<\/p>\n\n\n\n<p>In your example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have two integer pointers, <code>ptr1<\/code> with an address of 1000 and <code>ptr2<\/code> with an address of 1004.<\/li>\n\n\n\n<li>When you subtract these two pointers (<code>ptr2 - ptr1<\/code>), you get a result of 4 bytes, which is the difference in addresses.<\/li>\n\n\n\n<li>Since the size of an integer is 4 bytes, you divide the address difference by the size of the data type: <code>(4 \/ 4)<\/code>, which equals 1. This means there is an increment of 1 integer-sized element between <code>ptr1<\/code> and <code>ptr2<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>This operation is useful for calculating the distance or offset between two pointers and is valuable for various pointer-related tasks, such as working with arrays and data structures.<\/p>\n\n\n\n<p>Example<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ C program to illustrate Subtraction\n\/\/ of two pointers\n#include &lt;stdio.h&gt;\n \n\/\/ Driver Code\nint main()\n{\n    int x = 6; \/\/ Integer variable declaration\n    int N = 4;\n \n    \/\/ Pointer declaration\n    int *ptr1, *ptr2;\n \n    ptr1 = &amp;N; \/\/ stores address of N\n    ptr2 = &amp;x; \/\/ stores address of x\n \n    printf(\" ptr1 = %u, ptr2 = %u\\n\", ptr1, ptr2);\n    \/\/ %p gives an hexa-decimal value,\n    \/\/ We convert it into an unsigned int value by using %u\n\/\/ Subtraction of ptr2 and ptr1\n    x = ptr1 - ptr2;\n \n    \/\/ Print x to get the Increment\n    \/\/ between ptr1 and ptr2\n    printf(\"Subtraction of ptr1 \"\n           \"&amp; ptr2 is %d\\n\",\n           x);\n \n    return 0;\n}\n <\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ptr1 = 2715594428, ptr2 = 2715594424\nSubtraction of ptr1 &amp; ptr2 is 1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5-comparison-of-pointers\">5. Comparison of Pointers<\/h2>\n\n\n\n<p>You can compare pointers using operators like <code>&gt;<\/code>, <code>&gt;=<\/code>, <code>&lt;<\/code>, <code>&lt;=<\/code>, <code>==<\/code>, and <code>!=<\/code>. These operators return <code>true<\/code> for valid conditions and <code>false<\/code> for unsatisfied conditions.<\/p>\n\n\n\n<p>Here are the steps for comparing pointers in C:<\/p>\n\n\n\n<p>Step 1: Initialize integer values and point these integer values to the pointers. Step 2: Use comparison or relational operators to check conditions on the pointer variables. Step 3: Display the output, which will indicate whether the specified conditions between the pointers are met.<\/p>\n\n\n\n<p>Pointer comparison is useful for tasks such as checking whether one pointer points to an element before or after another pointer in an array or to validate if two pointers point to the same memory location.<\/p>\n\n\n\n<p>Example<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\/\/ C Program to illustrare pointer comparision\n#include &lt;stdio.h&gt;\n \nint main()\n{\n    \/\/ declaring array\n    int arr&#91;5];\n \n    \/\/ declaring pointer to array name\n    int* ptr1 = &amp;arr;\n    \/\/ declaring pointer to first element\n    int* ptr2 = &amp;arr&#91;0];\n \n    if (ptr1 == ptr2) {\n        printf(\"Pointer to Array Name and First Element \"\n               \"are Equal.\");\n    }\n    else {\n        printf(\"Pointer to Array Name and First Element \"\n               \"are not Equal.\");\n    }\n \n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pointer to Array Name and First Element are Equal.\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"comparison-to-null\">Comparison to NULL<\/h2>\n\n\n\n<p>In C and many other programming languages, a pointer can be compared to or assigned a <code>NULL<\/code> value regardless of its data type. A <code>NULL<\/code> pointer is a special value that indicates that the pointer doesn&#8217;t point to any valid memory location. It&#8217;s commonly used in error handling and to check whether a pointer is valid before attempting to access the memory it points to.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\/\/ C Program to demonstrate the pointer comparison with NULL\n\/\/ value\n#include &lt;stdio.h&gt;\n \nint main()\n{\n \n    int* ptr = NULL;\n \n    if (ptr == NULL) {\n        printf(\"The pointer is NULL\");\n    }\n    else {\n        printf(\"The pointer is not NULL\");\n    }\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>The pointer is NULL\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"comparison-operators-on-pointers-using-an-array\">Comparison operators on Pointers using an array<\/h2>\n\n\n\n<p>Step 1: Declare the length of the array and initialize the array elements. <\/p>\n\n\n\n<p>Step 2: Declare a pointer variable and point it to the first element of the array. <\/p>\n\n\n\n<p>Step 3: Initialize counters for even and odd numbers. Use a loop to iterate through the array and check each element for even or odd. <\/p>\n\n\n\n<p>Step 4: Increment the pointer (move to the next element) for further iteration. <\/p>\n\n\n\n<p>Step 5: Print the results.<\/p>\n\n\n\n<p>Example<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Pointer Comparision in Array\n#include &lt;stdio.h&gt;\n \nint main()\n{\n    int n = 10; \/\/ length of an array\n \n    int arr&#91;] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };\n    int* ptr; \/\/ Declaration of pointer variable\n \n    ptr = arr; \/\/ Pointer points the first (0th index)\n               \/\/ element in an array\n    int count_even = 0;\n    int count_odd = 0;\n \n    for (int i = 0; i &lt; n; i++) {\n \n        if (*ptr % 2 == 0) {\n            count_even++;\n        }\n        if (*ptr % 2 != 0) {\n            count_odd++;\n        }\n        ptr++; \/\/ Pointing to the next element in an array\n    }\n printf(\"No of even elements in an array is : %d\",\n           count_even);\n    printf(\"\\nNo of odd elements in an array is : %d\",\n           count_odd);\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>No of even elements in an array is : 5\nNo of odd elements in an array is : 5<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pointer-arithmetic-on-arrays\">Pointer Arithmetic on Arrays<\/h2>\n\n\n\n<p>Pointers in C and C++ contain memory addresses, and it doesn&#8217;t make sense to directly add two addresses together. However, subtracting two addresses, as you mentioned, allows you to compute the offset (in elements, not bytes) between those two addresses, which can be useful for various purposes, such as determining the difference between two array elements.<\/p>\n\n\n\n<p>Regarding arrays and pointers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An array name in C and C++ acts like a pointer to the first element of the array. You can use the array name itself (e.g., <code>arr<\/code>) or the address of the first element (e.g., <code>&amp;arr[0]<\/code>) to reference the array as a pointer.<\/li>\n<\/ul>\n\n\n\n<p><strong>Program 1 :<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ C program to illustrate the array\n\/\/ traversal using pointers\n#include &lt;stdio.h&gt;\n \n\/\/ Driver Code\nint main()\n{\n \n    int N = 5;\n \n    \/\/ An array\n    int arr&#91;] = { 1, 2, 3, 4, 5 };\n \n    \/\/ Declare pointer variable\n    int* ptr;\n \n    \/\/ Point the pointer to first\n    \/\/ element in array arr&#91;]\n    ptr = arr;\n \n    \/\/ Traverse array using ptr\n    for (int i = 0; i &lt; N; i++) {\n \n        \/\/ Print element at which\n        \/\/ ptr points\n        printf(\"%d \", ptr&#91;0]);\n        ptr++;\n  }\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1 2 3 4 5 \n<\/code><\/pre>\n\n\n\n<p>Program 2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ C program to illustrate the array\n\/\/ traversal using pointers in 2D array\n#include &lt;stdio.h&gt;\n \n\/\/ Function to traverse 2D array\n\/\/ using pointers\nvoid traverseArr(int* arr, int N, int M)\n{\n \n    int i, j;\n \n    \/\/ Traverse rows of 2D matrix\n    for (i = 0; i &lt; N; i++) {\n \n        \/\/ Traverse columns of 2D matrix\n        for (j = 0; j &lt; M; j++) {\n \n            \/\/ Print the element\n            printf(\"%d \", *((arr + i * M) + j));\n        }\n        printf(\"\\n\");\n    }\n}\n\/\/ Driver Code\nint main()\n{\n \n    int N = 3, M = 2;\n \n    \/\/ A 2D array\n    int arr&#91;]&#91;2] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };\n \n    \/\/ Function Call\n    traverseArr((int*)arr, N, M);\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>Output<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1 2 \n3 4 \n5 6<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq-pointer-arithmetics-in-c-with-examples\">FAQ- Pointer Arithmetics In C With Examples<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1697441437744\" class=\"rank-math-list-item\">\n<h4 class=\"rank-math-question \">Q1. What is an example of a pointer arithmetic?<\/h4>\n<div class=\"rank-math-answer \">\n\n<p>Ans. When you add an integer to a pointer in C, the pointer moves forward in memory based on the size of the data it points to. For example, if the pointer is pointing to an integer (typically 4 bytes in a 64-bit system) and you add +2, it will move 8 bytes ahead. This ensures that the pointer points to the next integer in the sequence. This concept helps you work with arrays and data structures effectively.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1697441447933\" class=\"rank-math-list-item\">\n<h4 class=\"rank-math-question \">Q2. What is pointer and pointer arithmetic in C language?<\/h4>\n<div class=\"rank-math-answer \">\n\n<p>Ans.In C, pointer arithmetic comprises a limited set of operations that work with memory addresses, not values. These operations include incrementing, decrementing, adding integers, subtracting integers, and comparing pointers. They are crucial for tasks like managing arrays and memory allocation.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1697441454462\" class=\"rank-math-list-item\">\n<h4 class=\"rank-math-question \">Q3. Can we add two pointers in C?<\/h4>\n<div class=\"rank-math-answer \">\n\n<p>Ans. Adding two-pointers is considered to be illegal. Whereas, we can add pointer and integer addition. <\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Pointer Arithmetics In C With Examples Pointer arithmetic is a set of operations that can be performed on pointers, which are variables that store memory addresses. These operations are different from traditional mathematical calculations because they are performed in the context of memory addresses and the data types they point to. Some of the operations &#8230; <a title=\"Pointer Arithmetics In C With Examples\" class=\"read-more\" href=\"https:\/\/www.skillvertex.com\/blog\/pointer-arithmetics-in-c-with-examples\/\" aria-label=\"More on Pointer Arithmetics In C With Examples\">Read more<\/a><\/p>\n","protected":false},"author":4,"featured_media":2707,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[463],"class_list":["post-2706","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-programming","tag-pointer-arithmetics-in-c-with-examples","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"_links":{"self":[{"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/posts\/2706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/comments?post=2706"}],"version-history":[{"count":8,"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/posts\/2706\/revisions"}],"predecessor-version":[{"id":10725,"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/posts\/2706\/revisions\/10725"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/media\/2707"}],"wp:attachment":[{"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/media?parent=2706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/categories?post=2706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skillvertex.com\/blog\/wp-json\/wp\/v2\/tags?post=2706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}