.. c-pointers documentation master file, created by sphinx-quickstart on Thu Aug 10 17:00:22 2023. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. C Pointers ====================================== .. toctree:: :maxdepth: 1 :hidden: :includehidden: variable_and_ptr/variable_and_ptr basic_ptr/basic_ptr array_n_ptrs/array_n_ptrs malloc_ptr/malloc_ptr typecasting_n_ptr/typecasting_n_ptr funcs_n_ptrs/funcs_n_ptrs memcpy_ptr/memcpy_ptr const_ptr/const_ptr void_ptr/void_ptr array_of_ptr/array_of_ptr ptr_to_array/ptr_to_array function_ptr/function_ptr pre_incr_ptr/pre_incr_ptr post_incr_ptr/post_incr_ptr pre_decr_ptr/pre_decr_ptr post_decr_ptr/post_decr_ptr .. tab-set:: .. tab-item:: Let us get started with Pointers in C ! .. tab-set:: .. tab-item:: Pointers in C .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Please write to ``learning@c-pointers.com`` for technical help, new documentation, reviews ! .. tab-set:: .. tab-item:: Why do you need to learn this C pointers module ? .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow This Tutorial helps you learn the pointer concepts of C programming language from scratch quickly and effectively. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Learning about pointers has always been trickier for students, beginners, expert engineers etc., .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow If you… * Are not sure where to start learning C Pointers. * Are frustrated with copy-n-paste of C Pointers code from others without really understanding it. * Cannot add efficient and compact code using C because you don’t know how to get much out of the language. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Then, * C-Pointers.com is a good place to start. .. tab-set:: .. tab-item:: Teaching Approach in this module C-Pointers.com takes the approach of explaining pointer concepts in a unique way .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow * Every chapter has a uniform template, and teaches you to write * Table of Equations * Table of Expressions * Table of Size (for Expressions) * Table of Type (for Expressions) * Table of Operations (for Expression) * Table of Address/Value (for Expression) * Table of Function Prototype (for Expression) * The moment you see any complicated C statements having \*, [], ->, & * Make sure you are comfortable and capable of writing down above tables quickly * In the beginning days, you can write the tables on sheet of paper * At later stages, you can quickly load them in your mind * Kindly read the modules, chapters in the same order as mentioned below .. tab-set:: .. tab-item:: Module 1 : Equations and Pointers .. card:: :doc:`variable_and_ptr/char_ptr` * :doc:`variable_and_ptr/sp_char_ptr` * :doc:`variable_and_ptr/dp_char_ptr` * :doc:`variable_and_ptr/tp_char_ptr` .. card:: :doc:`variable_and_ptr/int_ptr` * :doc:`variable_and_ptr/sp_int_ptr` * :doc:`variable_and_ptr/dp_int_ptr` * :doc:`variable_and_ptr/tp_int_ptr` .. card:: :doc:`variable_and_ptr/float_ptr` * :doc:`variable_and_ptr/sp_float_ptr` * :doc:`variable_and_ptr/dp_float_ptr` * :doc:`variable_and_ptr/tp_float_ptr` .. card:: :doc:`variable_and_ptr/double_ptr` * :doc:`variable_and_ptr/sp_double_ptr` * :doc:`variable_and_ptr/dp_double_ptr` * :doc:`variable_and_ptr/tp_double_ptr` .. card:: :doc:`variable_and_ptr/struct_ptr` * :doc:`variable_and_ptr/sp_struct_ptr` * :doc:`variable_and_ptr/dp_struct_ptr` * :doc:`variable_and_ptr/tp_struct_ptr` .. tab-set:: .. tab-item:: Module 2 : Arrays and Pointers .. card:: :doc:`array_n_ptrs/array_n_ptrs` * :doc:`array_n_ptrs/char_array_n_ptrs` * :doc:`array_n_ptrs/int_array_n_ptrs` * :doc:`array_n_ptrs/struct_array_n_ptrs` .. tab-set:: .. tab-item:: Module 3 : Malloc and Pointers .. card:: :doc:`malloc_ptr/sp_malloc_ptr/sp_malloc_ptr` * :doc:`malloc_ptr/sp_malloc_ptr/char_sp` * :doc:`malloc_ptr/sp_malloc_ptr/int_sp` * :doc:`malloc_ptr/sp_malloc_ptr/structures_sp` .. card:: :doc:`malloc_ptr/dp_malloc_ptr/dp_malloc_ptr` * :doc:`malloc_ptr/dp_malloc_ptr/char_dp` * :doc:`malloc_ptr/dp_malloc_ptr/int_dp` * :doc:`malloc_ptr/dp_malloc_ptr/structures_dp` .. card:: :doc:`malloc_ptr/tp_malloc_ptr/tp_malloc_ptr` * :doc:`malloc_ptr/tp_malloc_ptr/char_tp` * :doc:`malloc_ptr/tp_malloc_ptr/int_tp` * :doc:`malloc_ptr/tp_malloc_ptr/structures_tp` .. card:: :doc:`malloc_ptr/combo/combo` * :doc:`malloc_ptr/combo/combo` .. card:: :doc:`malloc_ptr/exercises/exercises` * :doc:`malloc_ptr/exercises/exercises` .. tab-set:: .. tab-item:: Module 4 : Type-casting with pointers .. card:: :doc:`typecasting_n_ptr/typecasting_n_ptr` * :doc:`typecasting_n_ptr/sp_char_ptr` * :doc:`typecasting_n_ptr/sp_int_ptr` * :doc:`typecasting_n_ptr/sp_struct_ptr` * :doc:`typecasting_n_ptr/typecasting_exercise` .. tab-set:: .. tab-item:: Module 5 : Functions and Pointers .. card:: :doc:`funcs_n_ptrs/funcs_n_ptrs` * :doc:`funcs_n_ptrs/char_ptr` * :doc:`funcs_n_ptrs/int_ptr` * :doc:`funcs_n_ptrs/struct_ptr` .. tab-set:: .. tab-item:: Module 6 : Memory copy with pointers .. card:: :doc:`memcpy_ptr/sp_memcpy_ptr/sp_memcpy_ptr` * :doc:`memcpy_ptr/sp_memcpy_ptr/char_sp` * :doc:`memcpy_ptr/sp_memcpy_ptr/int_sp` * :doc:`memcpy_ptr/sp_memcpy_ptr/structures_sp` .. tab-set:: .. tab-item:: Module 7 : const pointers .. card:: :doc:`const_ptr/sp_const_ptr/sp_const_ptr` * :doc:`const_ptr/sp_const_ptr/char_sp` * :doc:`const_ptr/sp_const_ptr/int_sp` * :doc:`const_ptr/sp_const_ptr/structures_sp` .. card:: :doc:`const_ptr/dp_const_ptr/dp_const_ptr` * :doc:`const_ptr/dp_const_ptr/char_dp` * :doc:`const_ptr/dp_const_ptr/int_dp` * :doc:`const_ptr/dp_const_ptr/structures_dp` .. card:: :doc:`const_ptr/tp_const_ptr/tp_const_ptr` * :doc:`const_ptr/tp_const_ptr/char_tp` * :doc:`const_ptr/tp_const_ptr/int_tp` * :doc:`const_ptr/tp_const_ptr/structures_tp` .. tab-set:: .. tab-item:: Module 8 : void pointers .. card:: :doc:`void_ptr/void_ptr` * :doc:`void_ptr/void_ptr_sp` .. tab-set:: .. tab-item:: Module 9 : Array of pointers .. card:: :doc:`array_of_ptr/sp_array_of_ptr/char_sp` * :doc:`array_of_ptr/sp_array_of_ptr/char_sp` .. card:: :doc:`array_of_ptr/dp_array_of_ptr/char_dp` * :doc:`array_of_ptr/dp_array_of_ptr/char_dp` .. tab-set:: .. tab-item:: Module 10 : Pointer to an Array .. card:: :doc:`ptr_to_array/sp_ptr_to_array/sp_ptr_to_array` * :doc:`ptr_to_array/sp_ptr_to_array/char_sp` * :doc:`ptr_to_array/sp_ptr_to_array/int_sp` * :doc:`ptr_to_array/sp_ptr_to_array/structures_sp` .. card:: :doc:`ptr_to_array/dp_ptr_to_array/dp_ptr_to_array` * :doc:`ptr_to_array/dp_ptr_to_array/char_dp` * :doc:`ptr_to_array/dp_ptr_to_array/int_dp` * :doc:`ptr_to_array/dp_ptr_to_array/structures_dp` .. tab-set:: .. tab-item:: Module 11 : Function Pointers .. card:: :doc:`function_ptr/function_ptr` * :doc:`function_ptr/fp_no_typedef` * :doc:`function_ptr/fp_typedef_m1` * :doc:`function_ptr/fp_typedef_m2` .. tab-set:: .. tab-item:: Module 12 : Pre Increment with Pointers .. card:: :doc:`pre_incr_ptr/pre_incr_ptr` * :doc:`pre_incr_ptr/sp_pre_incr_ptr/sp_pre_incr_ptr/` * :doc:`pre_incr_ptr/dp_pre_incr_ptr/dp_pre_incr_ptr` * :doc:`pre_incr_ptr/tp_pre_incr_ptr/tp_pre_incr_ptr` .. tab-set:: .. tab-item:: Module 13 : Post Increment with Pointers .. card:: :doc:`post_incr_ptr/post_incr_ptr` * :doc:`post_incr_ptr/sp_post_incr_ptr/sp_post_incr_ptr/` * :doc:`post_incr_ptr/dp_post_incr_ptr/dp_post_incr_ptr` * :doc:`post_incr_ptr/tp_post_incr_ptr/tp_post_incr_ptr` .. tab-set:: .. tab-item:: Module 14 : Pre Decrement with Pointers .. card:: :doc:`pre_decr_ptr/pre_decr_ptr` * :doc:`pre_decr_ptr/sp_pre_decr_ptr/sp_pre_decr_ptr/` * :doc:`pre_decr_ptr/dp_pre_decr_ptr/dp_pre_decr_ptr` * :doc:`pre_decr_ptr/tp_pre_decr_ptr/tp_pre_decr_ptr` .. tab-set:: .. tab-item:: Module 15 : Post Decrement with Pointers .. card:: :doc:`post_decr_ptr/post_decr_ptr` * :doc:`post_decr_ptr/sp_post_decr_ptr/sp_post_decr_ptr/` * :doc:`post_decr_ptr/dp_post_decr_ptr/dp_post_decr_ptr` * :doc:`post_decr_ptr/tp_post_decr_ptr/tp_post_decr_ptr`