that’s me! most of the time

*Pointers , […]Arrays & Recursion

Michelle Juma
4 min readApr 5, 2022

Do you get it now?

It has been two weeks since, I believe. Boggling my mind to come to terms with everything. And debugging. deep heavy sigh.

Ever since I knew about rubber duck debugging ,— taking a rubber duck and explaining your whole code to it. All of it . — I feel like all my errors gaslight me . Like it’s not me, it’s you. An endless one-way conversation with my laptop.

what the [bleep]? — -Nothing
why won’t you [bleep] worrrrk!!! — silence
agh [bleep] this btw
oh shit.

Gruesome. I know. Let’s get on with it.

*Pointers

Simply put, there are those people in life who always knows a guy. No, they do not have what you want, but they know someone who has. That guy is a *pointer. What you want now, is the pointed.

  • These are used to store addresses of the pointed.
    - They point you to where the value is.
  • - Pointers are declared by denoting an asterisk just before the variable:
(ways of declaring a pointer)int *p; --- pointer to an integerchar *c -- pointer to a characterint* p1, p2; -- we have declared a pointer p1 and a normal variable p2.
- They hold the addresses with the (&) sign
  • Assigning Pointers with value.

Here we initiate pointer pc and var c. We assign it a value 5. Then we say our pointer will point(hold address) our pointed.

int* pc(pointer), c(pointed);c = 5;
pc = &c;
  • Get value of the pointed.
    The address of c is assigned to the pc pointer. To get the value stored in that address, we used *pc.
printf("%d", *pc); //output 5.do not use *pc = &c; -- (just don't)
  • Change value of the pointed.
    After initialization, we append our values.
    We then store the address of our pointed in our *pointer.
    We then change the value of our pointed and try to print out the value, hence.
int* pc, c;c = 5;
pc = &c;
c = 1;
printf("%d", c); // Output: 1
printf("%d", *pc); // Ouptut: 1
  • There are double **pointers. They point to the pointer of the pointed. (These are the guys who knows a guy who knows a guy.)
  • More information on pointers can be found here and here.

arrays [value]

  • The mother of storage. It can be used to store alot of values in a single variable. They are declared as :
dataType varName[no_of_elements]int t [5];  //Here we have initialized an array of 5 integers.
  • Initialization
    These are the possible ways to initialize our variables.
int t[5] = {5, 68, 1000, 3, 467};
int t[] = {5, 68, 1000, 3, 467};
  • Accessing arrays
    Arrays always start with a zero when counting it’s values.
    To access the value 1000 in our array , we count from 0 which space it is in.
int t[2];   /// output 1000
int t[4]; ///output 467
  • Changing values.
    To change the value , we access the array we want and assign a new value.
int [0] = 1;
int [0]; //output will be 1 from 5
  • Multidimensonal Arrays.
    These are arrays that hold other arrays. int x [y][z]|| int a [b][c][d]
  • A times table is an example of two dimensional arr. More information ← — there.

Recursion.

Very recursive concept. You can get it then you don’t. You repeat the process till you get it. — Get it? No?Okay.

Recursion is a function that calls itself. The explanation on why it does this is easy.

  • It breaks down the problem to smaller problems(solutions).
  • It solves the smallest problem and repeats itself back up till it solves the biggest problem.

Case Example: You are 15 min walk away from home.

function goHome(){
first ,if you are at home -- we stop walking //(base case)
if not, we take a step towards home //method goHome(); //function calling itself
}

This is a continous process of walking till we get home. By taking small steps , we solve the function of going home.

  • We see the structure of a recursive function.
    1. Base case — this is the end-point of our case.
    It checks if we have fullfilled our whatever we wanted.
    It prevents the function from forever executing.
    2. Method — This is the body of our function, where we write how we are to solve this small task.
    3. Function calling — The function calls itself. This loops it back to the base case and then ….repeats itself. See, recursive.

Now, do you get it?
Yes? Good .
No? Let’s try this again.

Open this link in new tab 😁

  • Major life examples are factorial! and fibonacci(next num is the sum of the previous two numbers).
    It always starts with 0, 1. So, a series (9) of fibonacci is :
0, 1, 1, 2, 3, 5, 8, 13, 21

There is much I can write to a point, but I hope we have understood this.

Commit count: 420.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Michelle Juma
Michelle Juma

Written by Michelle Juma

My other github — but with more words.

No responses yet

Write a response