POINTERS DECLARATION

Duration: 4 min

This video lesson is available to enrolled students.

Return to /learn/INFYTQ-PREPARATION/programming-fundamentals/arrays-pointers/pointer-basics-declaration-initialization-and-dereferencing/asset-pointers-declaration after enrolling

Inside: a video lesson and guided study material.

Module outline

  1. Programming Fundamentals: C Fundamentals, Control Flow, Functions, Arrays & Pointers, Storage Classes, Structures & Enums
  2. Object Oriented Programming: Object Oriented Programming (OOPS)
  3. Data Structures (Basic): Introduction to DS, Array, Stack, Queue, Linked List, Tree, Graphs, Hashing
  4. Algorithms (Basic): Algorithm Analysis, Sorting Algorithms, Greedy Algorithms, Dynamic Programming, Minimum Spanning Trees, Shortest Path Algos, Advanced Algorithms, Time Complexity Analysis
  5. Coding (Basic): Coding Questions by Yash Sir, C Programming by Yash Sir, Java, Python for Placements by Yash Sir, Programming in C++
  6. DBMS: Basics of DBMS, ER Diagram, Relational Model & Functional Dependencies, Keys & Integrity Constraints, Normalization (1NF - BCNF), Decomposition Properties & 4NF, File Organization & Indexing, Relational Algebra, Relational Calculus, Transaction Management, Concurrency Control, Database Recovery, ORDBMS, Database Security & Authorization, Enhanced Data Models, Query Processing & Optimization, Data Warehousing & Mining, Big Data Systems, NoSQL
  7. SQL: SQL
AI summary & chapters

AI Summary

An AI-generated summary of this video lecture.

The lecture provides a detailed explanation of C pointer declarations and the advanced concept of pointers to pointers. It starts by defining pointers as variables capable of holding memory addresses, emphasizing that since addresses are whole numbers, pointers always contain whole numbers. The instructor clarifies common misconceptions, such as `float *s` storing an address of a float rather than a float value itself. The lesson then extends this concept to show that a variable can be a pointer to another pointer. Using the code `int i = 3, *j, **k;`, the instructor demonstrates how `j` holds the address of `i` and `k` holds the address of `j`. He begins analyzing the code's output, marking specific `printf` statements to distinguish between printing addresses and values.

Chapters

  1. 0:00 – 2:00 00:00-02:00

    The instructor introduces pointer declarations like `int *alpha`, `char *ch`, and `float *s`, explaining they hold addresses. He notes that addresses are always whole numbers. He then introduces a code snippet `int i = 3, *j, **k;` to demonstrate pointers to pointers. He explains the initialization `j = &i` and `k = &j`. He starts annotating the `printf` statements on the screen, marking the first few with an 'x' to indicate they print addresses. He writes on the board that `i` holds 3, `j` holds an address (e.g., 65524), and `k` holds an address (e.g., 65522).

  2. 2:00 – 3:38 02:00-03:38

    The instructor displays the program output and draws a memory diagram. The diagram shows `i` containing 3 at address 65524, `j` containing 65524 at address 65522, and `k` containing 65522 at address 65520. He explains the chain of pointers: `k` points to `j`, which points to `i`. He goes through the remaining `printf` statements, marking them with 'y' to show they print values. He explains that `*j` and `**k` both dereference to the value 3. The segment concludes with a slide titled 'Back to Function Calls', indicating a shift in topic.

The lesson progresses from fundamental pointer definitions to the more complex concept of pointers to pointers. By using a concrete code example with `i`, `j`, and `k`, the instructor visually demonstrates memory allocation and dereferencing. The transition from explaining declarations to analyzing specific `printf` outputs and memory diagrams solidifies the understanding of how pointers chain together to access values indirectly. This sets the stage for understanding function calls by reference.

Loading lesson…