Thursday 8 October 2015

MEANING OF DREAMS


About Dreams
 
Since antiquity, dreams have been a marvel for the human conscience. Even in the 21st century when human beings have already landed on the Moon and are scaling vast astronomical distances, dreams have not lost their mystical attraction. Dreams are still a mystery for us and at the same time have pleasing as well as terrorizing effects on us.

Our religious scriptures abound in the extensive descriptions about dreams. The fact that a separate scripture had to be created especially for the analysis of the dreams amply corroborate their importance. We may however say that analysis of dreams is in fact an integral part of Astrology. Like astrology where predictions are made according to the movement of the planets, dreams also help us to draw an inference based on the sequence of events that we witness during sleep.

A layman broadly divides his dreams into good and bad ones. Invariably, he takes bad dreams as ill omens and vice versa. So-called modern intellectuals deride one’s beliefs in dreams as mere superstitions. But it is also a fact that in the western countries like USA, which is at least a century ahead of us in terms of technological development, dreams constitute an interesting subject for research in modern science.
Before going further into the matter, let us discuss some common questions like -
 aerrowWhy do we have dreams?
 aerrowDo the dreams affect human life?
 aerrowCategories Of Dreams.
 aerrowTiming Of Dreams.
 aerrowInterpretation Of Dreams
 aerrowWhich type of dreams have which types of effects?
 
 
 
DO THE DREAMS AFFECT HUMAN LIFE? 
Dreams do affect our day-to-day life, sometimes positively, sometimes negatively, though the scientific investigations to support this point are lacking. Your own experience with the dreams and how you felt afterwards are the only things that support this view. It is entirely a spiritual or para-psychological matter, which is far beyond the precepts of physical sciences. But experiences of even a layman have certain weight when it comes to the analysis of dreams.

Our religious scriptures contain profuse description of the dreams and their effects. In Sundar kand of Ramayana, an ogress Trijata relates her dream to her companion that in the dream, she had seen Ravan with tonsured head and going to the south riding an ass and that there was great stampede in Lanka. It is well known that within a month, her dream came true as Hanumana caused devastation by setting Lanka on fire that resulted in a great stampede there. Even Ravan ultimately migrated to the south i.e. met his death.

Dreams may also be termed as premonition i.e. having knowledge of the events that are to take place in future. But all the people are not able to draw an unfailing conclusion on the basis of the dreams. Those who are more pious, more spiritual in nature have a developed ability to draw a conclusion on the basis of the dreams. Same was the case with Trijata who is stated to be more pious and spiritually inclined than the rest of the ogresses as is apparent from this stanza:

TRIJATA NAAM RAKSHASI EKA, RAAM CHARAN RATI NIPUN BIBEKA ||
SABANHU BOLI SUNAESI SAPANA, SEETAHI SEI KAREHU HIT APANA ||
SAPANEN BANAR LANKA JAARI, JAATU DHAAN SAINA SAB MAARI ||
KHAR AARURH NAGAN DASASEESA, MUNDIT SIR KHANDIT BHUJ BEESA||
EHI BIDHI SO DACHCHHIN DISI JAI, LANKA MANAHU VIBHISHAN PAI ||
NAGAR PHIRI RAGHUBIR DOHAI, TAB PRABHU SEETA BOLI PATHAI || 



All the dreams do not have similar effects. Outcome of some of the dreams begins to manifest within a few days whereas others might take months or even years to show their outcome. It is generally believed that only those dreams have effect, which we have during deep slumber. Those dreams that we have during short nap are usually ineffective. Thus, time of the dream is equally important. In any case, correct interpretation of dream helps us to condition ourselves physically and mentally to deal with the ensuing circumstances.
TOP
 
CATEGORIES OF DREAMS 

Broadly, the dreams have been divided into 3 categories.
  1. Strange dreams.
  2. Premonition dreams.
  3. Dreams those reflect real life.
  1. Strange dreams :
As is apparent from the name, these dreams are strange in nature and produce strange feelings in the dreamer. The sequences that are played in such kind of dreams have no connection with reality such as one can see in a dream, a person with four heads, sixteen hands or with huge mountain-like body. One might even see elephants flying in his dream. Such sequences have no connection with reality but still people experience them. Sequences can be even stranger than one might expect.
  1. Premonition dreams:
This category of dream can have two types- dreams that augur well, and dreams that augur ill. These are the most important kinds of dreams, which have long-lasting effect on our daily life. Sequences seen in these dreams like visiting temples and places of pilgrimage, sighting holy people and having their blessings and many such things, which are pleasant to us. Contrary to such sequences, one might see a woman clad in red or black sari taking someone towards the south. This type of sequences always augurs ill. Similarly, sighting of shooting stars and breaking shoes also indicate some mishap.
  1. Dreams that show real thing :
This type of dream also does not have much importance and materialise only rarely. These dreams however fulfil our incomplete desires. Such as for example, one might be desirous of becoming a king, so in his dream, he becomes a king. Similarly, a pretty girl might want to marry an extremely handsome man. So in her dreams, she sees herself becoming a queen. Effect of such dreams lasts as long as we are dreaming. Once the sleep is disturbed, these dreams and their effects also vanish altogether.
TOP
 
 
 
TIMING OF THE DREAMS 
During the whole night’s sleep, a normal human being has five cycles of dreams. An insane person can have even more up to fifteen cycles of dreams. Even a normal person has a complete cargo of dreams if he is mentally disturbed or having physical ailment. There are five distinct timings of the dreams. These are -
  1. First quarter of the night that lasts one and a half to two hours.
  2. Second quarter of the night that also lasts about two hours.
  3. Third quarter of the night that has duration of two hours.
  4. Fourth quarter of the night. It overlaps with dawn.
  5. Early morning.
Experts and analysts of dreams believe that the dreams, which one has during the first quarter of the night, take one year to show their effect. Dreams of the second quarter manifest their effects within 8 to 10 months. Dreams of the third quarter materialise within 3 to 5 months whereas dreams, which one has during the fourth quarter or Brahma Muhurta, show their effects instantaneously or within a month. Dreams of early morning period are virtually ineffective for they are an outcome from state of half sleep.

Auspicious dreams: Sighting of cow, elephant, cadaver, girls, silver utensils and ornaments, learned Brahmin, king, mourning in the home are considered as auspicious signs. Moon, a tree in full bloom, beautiful garden, idols of deity or great people, temple of Lord Shiva, oxen, chariot or other vehicle, lotus, white cloth, astrologer, cotton, dancing troupe and book in the dream is definitely an auspicious sign. Similarly, performing actions like touring through the places of pilgrimage, conquering enemies, riding a horse, bathing in sacred rivers and meeting ascetics in the dream also show auspicious sign. Apart from these sighting of divine objects, eating rice and curd, drinking sherbet and delivering lectures are also auspicious sign.

Inauspicious dreams: Dreams in which one sights a shrivelled tree, ghost, giants, dried well, or pond, buffalo, owl, burning pyre, solar eclipse, accident etc. are definitely inauspicious. Similarly, wearing black or red clothes, getting insulted, swallowing snake, eating meat, roaming with empty vessel, sticking of mud on the body, getting stuck in the mud and riding camel, buffalo, or ass are inauspicious signs.

Apart from these, sequences like theft of precious metal and gems, abduction of wife, theft of shoes, sighting of shooting stars, drinking oil or ghee, sighting bandwagon and marriage procession as well as sighting honey bees in the courtyard, getting touched by a physician or a handicapped person etc. are extremely inauspicious signs that our dreams might show us.
TOP
 
INTERPRETATION OF DREAMS 
Dream world is indeed marvellous. No one can fathom it. Million kinds of sequences appear in the dream but still these seem to be unending. Some of these sequences do have definite indication but most of them are meaningless. It is not possible to interpret all the sequences that more than six billion people of the world see in their dreams nor it is possible to count all these sequences. Broadly, the dream sequences can be divided into certain heads. Each of them has their own indication. All other sequences have more or less similar indications provided that they bear resemblance with these major sequences listed below -
  1. Sighting of great people.
  2. Sighting of temples and places of pilgrimage.
  3. Sighting of holy objects and auspicious events.
  4. Sighting of unholy objects and inauspicious events.
  5. Sighting of violent animals.
  6. Sighting of holy animals.
  7. Sighting of strange looking people.
  8. Sighting of strange events.
  9. Sighting of losing and finding something.
  10. Sighting of people dead long ago.
These are major types of sequences one usually sees in his dreams. All the other types of sequences revolve around these major types and hence have more or less similar effects. While going through the current discussion, you will come to learn a great deal of things about the omens related to the dreams. If you have a dream that augurs well, we advise you not to sleep again after having that dream in order to have its complete effect. Likewise, if you have an inauspicious dream, fall asleep again to minimise its bad effects. There are many more measures to minimise the bad effects of an inauspicious dream. We shall discuss about them in subsequent chapters.
TOP
 
DREAMS AND THIER EFFECTS

RESULTS OF AUSPICIOUS DREAMS

Air : Dreams of air represent freedom or escape from limitations.Clear air and blue sky denotes success and happiness.But if the air is misty,stormy,cold or hot,it is indication of unhappiness and troubles.
Animals : Dream of an animal shows a parallel mental and emotional state of the dreamer i.e. where dog represnts faithfulness;fox shows a cunning state of mind. According to the situation going in life,interpretations can be made depending on animals character.
 Automobiles : Dream of an automobile suggests that some hasty news will be sent to you.Owniwng a car tells that one may recieve a gift.The dreams of different ways one travels in car suggests different thing in life as happiness when with children or scandal when with woman.
Baby : A baby in dream interprets new ideas.Usually baby indicates happiness but a baby taking first step may suggest difficulty in business or a helpless baby shows disappointment in love.
Being Beaten : Such a dream is a sign of discord in family.Seeing others being beaten predicts money loss.Seeing a animal being beaten have different interpretations for different animals.
 Beating : Beating someone shows that you are not happy with the person whereas beating a animal suggests damage in one's own affairs.Beating of family members shows happiness and success in love.Different relatives can be interpreted differently.
Birds : Birds depict the exalted mental condition of the dreamer.Dreaming of dove or pegion is a sign of peace and happiness and that one is involved in philosphical or spiritual activities or some creative venture.
Clothes : Clothes suggests how one wants to look in front of others.New clothes tell of prosperity,buying of clothes indicates success in love.But torn or soiled clothes foretell some deceitful actionthat may harm the dreamer ; specially woman dreamer should be careful from his associates.
Earth : Dreaming of earth is indication of sorrows,humiliation,illness ;different states of earth being predicted differently. But dreaming of earth full of grains or oneself being worried brings prosperity and green pastures suggests good children.
Fire : Fire in dreams is a good sign if one does not see oneself being burnt.Setting of office on fire indicates advancement in business and house on fire tells good companions and faithful servants.Kindling of fire suggests many good surprises in store for you.But if you see no flames and only smoke,it is a sign of diappointment.
House : A new house with many rooms in dream foretell newer levels of learning ,leading to gradual enlightenment.A tall building suggests success,a small building failure,a big building change in present situation and a magnificent building suggests long life and travel.
Killing: There are different situations and different interpretation regarding killing. Killing defenseless-sorrow, in self defence-victory, someone attempts to kill you-long life, killing a friend-good health, a businessman-security,a bird-damage and so on.
Love: Loving someone indicates satisfaction, joy and good fortune. Being loved suggests success, but unwanted love shows heart trouble. Failure in love indicates just the opposite, loving animals is sign of fortune. But loving friend brings in bad news and loving relatives suggests financial loss.
Money : Generally profit and loss in dreams foretell just the opposite in real life; though there is contradiction on this point.Stealing money in a dream indicates sickness whereas spending money indicates failure due extravagance and one should be careful.
Naked: Seeing oneself naked indicates unwise involvement that may bring in public disgrace. Dreaming of oneself naked is sign of disappointments but married persons dreaming themselves naked foretells a wealthy future for them.
People: Seeing people shows your own personality or behavior these days. A person in church or in black clothes shows unhappiness but a crowd in street suggests business prosperity.
Sex: It foretells happiness, abundance and financial gains.
 Snake: Appearance of snake in peaceful state denotes growth of wisdom. But other states of snake have different interpretations ; attacking position-treachery, biting-business may be injured, walking over them-sickness,killing a snake-victory in work but after difficulties,little snakes around-defame.
Tree : Seeing a tree in general denotes happiness,abundance and good news but a sapling tree indicates poverty,a dead tree foretells unhappiness,a tree with leaves turning yellow tells of sickness.Climbing a tree foretells elevation in life and work,taking fruits from the tree indicates inheritance from elderly people.
Water : Water dreams in general indicates abundance and joyful enjoyment. Muddy water tells sorrow and illness. Drawing water from a fountain suggests fortune through a beautiful young wife. Falling into water or walking into it foretells marriage with wrong person. Different ways in which water is seen indicates many different things.
Numbers: It could be a number written on something or particular number of objects or you may visit a place particular number of times. As in numerology, if name appears in dreams it should be calculated to evaluate a number. The interpretations about numbers 1-9 are same as in numerology. Besides single digit numbers, karmic numbers (11,22,33...) also have the same effect as in numerology.
Colors: Clear and rich color indicates positive effects whereas dull or muddy colors are a sign of negative aspects. Different colors have been assigned different numbers that have interpretations same as in numerology. Red-1,orange-2,yellow-3,green-4,blue-5,indigo-6,violet-7,pink-8,bronze-9,silver-11,gold-22.Other colors stand for black-malice, white-purity and grey-conventionality.


Sighting of great and holy people, temples, place of pilgrimage, auspicious objects, birds and animals are considered good and such dreams as auspicious.

Sighting of great and holy people: Sighting of great and holy people in the dream augurs well. Following is a discussion about different categories of great and holy people.
  1. Sighting of sages and ascetics: The dreamer might receive some auspicious news. Receiving of gift from the sage in dream signifies even more auspiciousness.
  2. Sighting of teacher: This is also an auspicious sign. Blessing by the Guru signifies even more auspiciousness.
  3. Sighting of astrologer: This signifies a sudden search in the fortune.
  4. Sighting of the elders: This is a beneficial sign. A blessing by the elders in dreams results into the fulfilment of desires.
  5. Sighting of the king: This is also an auspicious sign that indicates fulfilment of desires.


Similarly, sighting of other great and pious people gives similar result. Blessing by them also signifies greater fortune. Sighting of temples and place of pilgrimage -
  1. Sighting of temple: If a temple is seen in the dream along with an idol of Goddess Durga in her four-armed appearance, it is auspicious by all means and signifies removal of the crisis.
  2. Sighting of Lord Shiva: Appearance of Lord Shiva in the dream is extremely benevolent. This also signifies end of the crisis period.
  3. Sighting of Goddess Lakshmi: Sighting of Goddess Lakshmi in the dreams signifies that the dreamer is soon to be blessed by her. The dreamer might also receive an expected wealth.
  4. Sighting of sacred rivers: Sighting of sacred rivers like Ganga, Yamuna, Godavari etc. brings peace and tranquillity in life. If the dreamer sees himself taking a bath in these rivers, it shows good health for him.
Sighting of place of pilgrimage: Sighting of holy places of pilgrimage like Kedarnath, Badrinath, Dwarka, Amarnath etc. brings peace, prosperity as well as indicates a pilgrimage or some auspicious happening in the household of the dreamer. Similarly, sighting of sea, Cadamba tree or any other sacred objects indicates peace, prosperity and auspiciousness for the dreamer.
 
SIGHTING OF AUSPICIOUS AND HOLY OBJECTS -
  1. Sighting of saffron and musk: It indicates fame and fortune for you. Purchasing and touching these things in the dream shows even greater auspiciousness.
  2. Sighting of flowers: Sighting of flowers like lotus and rose indicates good health for you.
  3. Sighting of books and scriptures: It indicates mental and intellectual development for you.
  4. Sighting of stationary item: Sighting of stationary items like pen, pencil, notebook etc. indicates achievement of your goals. Such dreams are even more significant for the literateurs.
  5. Sighting of treasures: It indicates certain prosperity for you. You might receive immense wealth from some unexpected source.
  6. Sighting of lamp and incense sticks: This is also an auspicious indication. It shows immediate removal of your crisis.
  7. Sighting of fields and granary: It indicates receiving of good news as well as prosperity. Some auspicious event might take place in your home.
  8. Sighting of mountain peak and tower: It indicates progress in your work as well as fulfilment of your desires.
  9. Sighting of kitchen- Sighting of kitchen or cooking food in the dream indicates liberation from the debts and unnecessary tension.
  10. Sighting of the numbers: It is also an auspicious sign and signifies receiving of wealth from lottery, race, speculation or gambling.
  11. Sighting of mirrors: This is an auspicious sign that indicates an increase in desires and their completion.
  12. Sighting of arms: Sighting of arms like bow and arrow, sabre, lance, guns etc. and you training them at the target is an auspicious sign that indicates your win in a litigation and completion of some task blocked since long. Sighting of ordinance depot is also auspicious.
  13. Sighting of memorial: Sighting of memorials and paying respect in the way of floral garlands is an extremely auspicious dream.
  14. Sighting of waterfalls and snowfall: It is an auspicious sign that indicates removal of mental tortures.
  15. Sighting of ledger and account book: This is also an auspicious indication that hints at coming of wealth.
  16. Sighting of turban: It indicates completion of your desired task as well as an increase in your reputation. It also shows that you will be able to safeguard your respect.
  17. Sighting of Moon and sandalwood: It is an auspicious sign indicating good news.
  18. Sighting of rainbow: Sighting of rainbow and clouds in the dream indicate happiness.
  19. Sighting of horse rider: It indicates a journey for you with an auspicious objective. It also shows successful execution of the task.
  20. Sighting of diver: This indicates receiving of some secret information alarming you against the conspiracy of your rivals.
  21. Sighting of betel leaves- Sighting of betel leaves, offering of them to someone else, chewing them and a sheaf of betel leaves augurs well. It indicates an auspicious occasion in your house.
  22. Sighting of letter: It indicates that you will re meet your friend after prolong separation or an authority figure. It also indicates completion of your desires. Sighting of money order indicates acquiring of wealth and completion of desires.
Apart from these, auspicious objects and events, sighting of bedstead, green vegetables, fruits, trident, planet Venus, well furnished bedstead, pearls and diamonds, flag, growing of moustache, fountain, son, daughter-in-law, rock addict, indulgence in luxuries, heaven, pillow, salt, shop and office, mother, binocular, entertainment items like television, radio etc., tents, court and lighted fire pot are all auspicious sign.
 
SIGHTING OF INAUSPICIOUS OBJECTS
  1. Sighting of beggar: If you see in your dream that a beggar is begging for alms from you, it is an inauspicious sign that indicates serious illness for a family member.
  2. Sighting of crematoria: This is an inauspicious sign that indicates imminent crisis for you. Some experts regard such dream as auspicious.
  3. Sighting of prison: It indicates imminent crisis or loss.
  4. Sighting of crossing: This is also inauspicious and shows a state of dilemma for you.
  5. Sighting of auction: Sighting of auction in dream is not an auspicious sign. It indicates some monetary crisis in the family.
  6. Sighting of robbers: It also indicates imminent crisis.
  7. Sighting of net: It indicates that you will be surrounded by crises.
Apart from these, sighting of lepers, handicapped people, aeroplane, ship, peon, barber, board, bottle, cage, naked person, crown, acid, bread, hell, cowherd, ornaments, grocer, enemy, stable, sinking person, heap of wood, rice, shrivelled tree, prisoner, killer, wall, guest, orphanage, bangles, flames of fire, forest, breaking of the nest, receiving and giving of bribe, stones and pebbles, pony, eclipse, brooms, and metals in the dream is extremely inauspicious indicates ill omens for the dreamer.
 
SIGHTING OF INAUSPICIOUS EVENTS AND THIER INDICATION -
  1. Death of the self or a relative: Sighting of the death of the self or of a relative indicates an increment in the expected life span of the concerned person. In other words, it is an auspicious indication.
  2. Getting insulted or beaten up: This is also an auspicious indication that shows removal of your worries and enemies.
  3. Killing someone: Sighting of you killing someone in your dream or performing some other cruel task augurs well. It shows your win in a dispute and on your enemy.
  4. Offering oblations to the dead ancestors: If you see yourself offering oblations to your dead ancestors in your dream, it shows comfort in your future life.
  5. Getting injured: Sighting of you getting injured in the dream indicates your win in litigation or a dispute.
  6. Bitten by the snake: Sighting of you being bitten by the snake in your dream indicates good health and wealth for you. Even the mere sighting of snake in the dream augurs well.
  7. Weeping: Sighting of yourself weeping or mourning in the dream indicates peace and prosperity for you.
  8. Stung by the insects: Sighting of yourself being surrounded by insects like flies, mosquitoes, ticks etc. is an auspicious sign. It indicates that you will receive an extremely pretty wife.
  9. Going bankrupt: Sighting of yourself in the dream going bankrupt augurs well for you. However sighting of others going bankrupt augurs ill for you.
  10. Getting raped: If a woman sees in her dream herself being raped by a man or a group of men, it indicates some unfavourable incident for her.
  11. Eating flesh: Sighting of eating, selling and purchasing flesh in the dream indicates loss of wealth.
  12. Defeat of the self: If you see your defeat in your dream, it indicates death or death-like agony for you.
  13. Sinking in water or swamp: Sighting of your sinking in water or swamp indicates a painful death.
  14. Dropping by a bird: Sighting of you being dropped by a bird like crow, or vulture indicates imminent death.
  15. Sighting of eclipse: Sighting of solar or lunar eclipse in the dream indicates death.
  16. Smearing with mud and dung: Sighting of yourself smearing ash, dung, dust or mud on your body shows death very soon.
  17. Collapsing palace and flag: Sighting of collapsing palace, breaking flag and canopy in the dream indicates snatching of kingdom, retardation in progress and even death.
  18. Inundated land: Sighting of land, fields, granary etc. inundated with floodwater indicates destruction of wealth and cereals.
  19. Severing of body parts: Sighting of you losing a part of your body in the dream indicates loss of the same organ such as if you see losing your eye, you will probably suffer from blindness.
  20. Lightning without clouds: Sighting of lighting without clouds in the southern sky indicates imminent death within two or three months.
  21. Clattering of teeth: This is an inauspicious sign that indicates departure of the dreamer to the abode of the demons.
  22. Change of colours of the organs: Sighting of organs in dream changing their colours like tongue white and face red indicates imminent death within a month.
  23. Falling in a pit or well: If someone sees himself in the dream falling in a pit or well and not able to come out it indicates that his death is very near.
  24. Murder by evil people: Sighting of the self being murdered by the evil people indicates death within seven days.
  25. Entering the fire: Sighting of self entering the fire and not coming out indicates imminent death.
  26. Riding camel and ass: Sighting of the self riding an ass or a camel and going towards the south indicates death within a month.
  27. Rainbow in the night and stars in the day: Sighting in the dream of rainbow in the night and the stars in the day indicates imminent death.
  28. Operation and bleeding: Sighting of operation and bleeding in the dream indicates physical pain.
  29. Abortion: Sighting of abortion in the dream indicates death of someone in the family.
  30. Strike: Sighting of strikes indicates demotion and relegation for the dreamer.
  31. Getting pushed: Sighting of the self in the dream being pushed by the crowd indicates an insult.
  32. Change in the body: Sighting of the self changing physically that is a fat man sees himself thin and a thin man sees himself getting fat indicates death within eight months.
 
SIGHTING OF AUSPICIOUS EVENTS -
  1. Engagement: Sighting of the engagement of the self or someone else indicates bad omens for the love relation of the dreamer.
  2. Marriage: Sighting of marriage in the dream indicates some inauspicious event. Death is possible.
  3. Delivering lecture: Sighting of the self, giving lecture is an auspicious sign. It indicates conquering of the enemies.
  4. Extreme joy: It indicates both auspicious as well as inauspicious results. First, the dreamer will get married then he would die soon afterwards.
  5. Copulating with a beautiful lady: Sighting of the self in the dream copulating with an extremely beautiful lady who is wearing red clothes and beautiful ornaments indicates imminent death of the dreamer. Even the kissing of such a lady in the dream augurs ill.
  6. Roaming in a garden: Sighting of the self in the dream roaming in a garden and not finding an end to the passages indicates death or death-like pain.
  7. Dancing and laughing: Sighting of the self in the dream laughing or dancing indicates killing soon afterwards.
  8. Wearing of red flower and thread: If someone sees himself in the dream wearing a red flower or red thread, it indicates loss of health and related pains for the dreamer.
 
SOME OTHER AUSPICIOUS EVENTS IN THE DREAMS
  1. Sighting of the sky: Sighting of the sky in the dream indicates that new heights in the life i.e. the dreamer will make rapid progress.
  2. Sighting of rail engine: Sighting of railway engine in the dream indicates unsuccessful implementation of the plans.
  3. Construction of building: Sighting of the construction of a building in the dream indicates monetary gain and progress.
  4. Sighting of reproductive organs: It indicates birth of children and continuation of progeny.
  5. Sighting of girl: It indicates progress and pilgrimage for the dreamer. An auspicious occasion may also arise.
  6. Combing of hair: It indicates the completion of desires.
  7. Cawing of the crow: It indicates a meeting with the beloved one.
  8. Veil: Sighting of a veiled lady in the dream indicates beginning of a new venture or receiving of some higher post.
  9. Sipping tea: An auspicious sign that indicates success of the dreamer.
  10. Boarding a ship or an aeroplane: Sighting of the self in the dream boarding a ship or an aeroplane indicates an important change in the life.
  11. Talking on the telephone: It also indicates receiving of auspicious news.
  12. Palanquin: Sighting of palanquin in the dream indicates completion of a long cherished desire for the dreamer.
  13. Playing of drums: It indicates meeting with the beloved one.
  14. Clapping: It indicates some special happiness.
  15. Stars: Sighting of the stars in the dream indicates completion of a desire.
  16. Swimming: Sighting of the self in the dream swimming indicates good health and an increment in the life of the dreamer.
  17. Bathing in a pond: It indicates an increase in the reputation.
  18. Trident: Sighting of the trident in the dream indicates an increase in the fortune of the dreamer. It also indicates arrival of an auspicious occasion in the household of the dreamer.
  19. Drinking milk: It indicates extra-ordinary pleasure for the dreamer.
  20. Eating of curd: It also indicates financial profit and progress.
  21. Immense wealth: It indicates pleasure from the offspring.
  22. Giving away donation: It also indicates some auspicious occurrence in the household.
  23. Crammed shop: Sighting of a shop crammed with goods in the dream indicates financial gain.
  24. Offering Namaaz: It indicates spiritual development.
  25. Climbing a tree: It indicates increase in reputation and progress.
  26. Papaya: Sighting a papaya in the dream indicates monetary gain and some other benefits.
  27. Crackers: Sighting of crackers in the dream also indicates monetary gain.
  28. Wrestler: It is an auspicious sign that indicates improvement in health.
  29. Worship: Sighting of worship in a dream indicates spiritual development and increase in devotion.
  30. Floral garden: Sighting of floral garden and orchard in the dream indicates special pleasure for the dreamer.
  31. Marriage procession: Sighting of marriage procession in the dream augurs ill. It indicates unnecessary tension and worries.
  32. Eating sweetmeats: It indicates an increase in reputation and progress.
  33. Yagya: Sighting of Yagya in the dream indicates an increase in the fortune. It also indicates an auspicious occasion in the household.
  34. Eating bread: It indicates completion of the desires.
  35. Chariot: It is an auspicious sign that indicates a journey for a noble cause.
  36. Rain: It indicates tension and losses.
  37. Journey abroad: It indicates a familial dispute.
  38. Beautiful lady: It indicates receipt of wealth.
  39. Journey to heaven: Sighting of a journey to heaven in the dream indicates physical and metaphysical pleasures for the dreamer.
  40. Bathing beauty: Sighting of a beautiful woman wearing white clothes and taking bath in the dream indicates gain of wealth.
  41. Eating in precious utensils: It indicates a reward from the royalty and an increase in the reputation.
  42. Drinking fresh cow milk: It indicates freedom from the diseases.
  43. Smearing of sandalwood paste: Sighting of getting smeared with sandalwood paste and touched by the flowers indicates improvement in health.
  44. Getting green vegetables and cereals: It indicates gain of wealth from unexpected sources.
  45. Sunrise: It indicates an accumulation and increase in the treasure.
  46. Happy Brahmin: It indicates successful completion of the desires.
  47. Auspicious songs by the womenfolk: It augurs ill and indicates death of someone in the family or some other grave calamity.
  48. Talk about marriage: If a widow sees in her dream that talks for her marriage are going on, it indicates serious illness for her.
  49. Riding an elephant: Dream of riding an elephant and eating cooked rice on a riverbank is an auspicious sign that indicates the kingship of entire earth.
  50. Swallowing of the Sun and Moon: It is also an auspicious sign that indicates kingdom of the entire earth.
  51. Eating kheer on the seat of lotus: It indicates attaining of kingship.
  52. Eating fruit and seeing flowers: An auspicious sign that indicates the obtaining of immense wealth.
  53. Victory: Sighting victory of the self and defeat of the enemy indicates that the dreamer might attain the supreme post of the land.
  54. Climbing a mountain and descending safely: It indicates successful completion of a mission and safe return.
  55. Smearing of the body with vermilion and marriage of the self: It is an extremely auspicious sign and the dreamer attains fabulous wealth and all kinds of comforts.
  56. Wife and husband: Sighting of the wife in husband’s dream and vice versa is an extremely auspicious sign for both of hem. It indicates deep love between the spouses.
  57. Inscribing on the tongue: Inscribing on the tongue in the dream indicates grace of Goddess Saraswati on the dreamer. He may attain kingship.
  58. Riding a rut elephant: Sighting a ride on a rut elephant and getting up in fear is an extremely auspicious sign that indicates gain of immense wealth.
  59. Demolition of old house and construction of new house: It indicates unlearning of bad habits for the dreamer.
  60. Surrounding a village or a town: It indicates that the dreamer might become the head of the village or the town.
  61. Filling of lap with fruits and flowers: It indicates gaining of immense wealth.
  62. Sighting of Lakshmi in white attire: An auspicious sign. Indicates grace of Goddess
  63. Lakshmi or Saraswati on the dreamer.
  64. Wearing ornaments: Wearing of ornaments in a dream is an auspicious sign that indicates that the dreamer might become a king one-day.
  65. Sleeping on jewelled bedstead: This is also an auspicious sign that indicate that the dreamer might become a king and will rule without obstacles and his enemies will fear him.
  66. Cropping of lotus in house: It indicates that prosperity and peace will reign everywhere in his kingdom under the rule of the dreamer.
  67. Getting embraced by a beautiful woman: If a man sees himself getting embraced by a beautiful woman, donning fine clothes, it indicates that his wealth will stay with him.
  68. Wearing good clothes and getting worshipped: It indicates gaining of wealth and cereal.
  69. Watching it rain: Sighting of rain in the dream is auspicious. Apart from it, sighting of fire is also auspicious and indicates continuous stay of the wealth.
  70. Getting touched by a bird or an animal: Touch by a bird or an animal in the dream and subsequent awakening indicates attaining of a beautiful and meritorious wife.
  71. Bathing in cold water: Bathing and playing in the dream indicates an increase in the fortune.
  72. Climbing a heap of the cereals, fruits and vegetation: Such a dream and subsequent awakening indicates good fortune. It also indicates an increase in the wealth.
  73. Sighting of balcony, arches and white kiosks: An auspicious sign that indicates an increase in the wealth, edible items and offspring.
  74. Touching the clouds, lightning and stars: It indicates all kinds of luxuries, prosperity and good luck.
  75. Eating pies: It indicates an increase in wealth.
  76. Drinking of milk in earthenware: It is an extremely auspicious sign. Drinking of cow’s milk in earthenware particularly indicates attaining of very high post or riches beyond expectation.
  77. Getting yellow fruits and red flower: Such dreams are also very auspicious and indicate receiving of gold and ruby. Some other good outcome is also possible.
  78. Getting Veena: Receiving of Veena in the dream and getting up subsequently indicates that the dreamer will get an extremely beautiful and meritorious wife.
  79. Crossing of river and ocean by aircraft: It indicates increase in wealth.
  80. Receiving of yellow cereals and mustard: It indicates receiving of higher education or secret knowledge.
  81. Well armed army: It indicates ownership of permanent wealth and assets.
  82. Touching of fan, curb, mace etc.: Sighting of these items as well as of the flags, arches, utensils etc. indicates an increase in the wealth and luxuries.
  83. Rubbing the breasts of a beautiful woman: This and enjoying intimacy with a beautiful woman in the dream indicate gain of a pretty woman.
  84. Receiving ambrosia: This and tasting of ambrosia in the dream indicates sudden gain of wealth.
  85. Sighting of pomegranate, Areca nut and coconut trees: Sighting of these trees in the dream is an auspicious sign that indicates gain of wealth.
  86. Hearing of auspicious sounds: Hearing of recitation of Vedas, trumpeting of elephant, roar of lion, or neighing of the horse indicates that the dreamer will get fabulous wealth.
  87. Row of the cows and clouds: Sighting of a row of the cows and clouds is an extremely auspicious sign that indicates great riches of the dreamer.
  88. Sighting of flowers: Sighting of white lotus, lavender, laurel, Naag-keshar, Maalti, sesame and Albezia indicates good fortune for the dreamer.
  89. Climbing the mountain peak: Climbing the mountain peak and looking down below over the vast expanses of grass fields in the dream indicates great riches for the dreamer.
  90. Becoming a king: Becoming a king and eating kheer in the dream indicates gaining of all kinds of comforts for the dreamer.
  91. Auspicious trees: Sighting of trees like Ashok, laurel, sandal and bamboo in the dream indicates gain of wealth.
  92. Auspicious things: Sighting of auspicious things like cardamom, clove, camphor, nutmeg, mace, musk, saffron etc. also indicates gain of wealth.
  93. Citrus fruits: Sighting of citrus fruits like orange, lemon etc. as well as bananas indicate salvation for the dreamer.
  94. Chewing sugarcane and betel leaves: It indicates continuous inflow of wealth.
  95. Heavy metals: Sighting of heavy metals like lead, brass etc. in the dream also indicates all kinds of comforts for the dreamer.
  96. White flowers: Receiving of white scented flowers like oleander, jasmine etc. in the dream indicate gaining of wealth by the dreamer.
  97. Lord Vishnu: Sighting of Lord Vishnu in His four- armed appearance indicates that the dreamer will be a supreme Yogi and attain all kinds of comforts, prosperity and peace.
  98. Auspicious insignia: Sighting of religious and auspicious insignia like Swastika, Doob grass, whirlpool, sacred thread etc. indicates kingship for the dreamer.
  99. Feather, mollusc etc.: Receiving of feathers, conch, mollusc, fish etc. in the dream indicates great riches and reputation for the dreamer.
  100. Gems and jewellery: Sighting of precious gems and jewellery in the dream indicates continuous inflow of wealth for the dreamer.
  101. Playing of Veena: Playing of Veena in the dream indicates increase in wealth of the dreamer.
  102. Milking of cow: Milking of cow in such a way that the milk falls directly into the mouth of the dreamer indicates annihilation of his enemies.
  103. Agar, camphor etc.: Sighting of auspicious objects like black Agar, camphor, Tagar, Naagarmotha and spikenard in the dream indicates increase in reputation for the dreamer. Putting a tilak with sandalwood paste also indicates the same thing.
  104. Sighting the near and dear ones in ornaments: Sighting of the friends and relatives wearing precious ornaments in the dream indicates good fortune.
  105. Carrying a flag: Sighting of the self in the dream carrying a flag and emergence of creeper, trees etc. from the navel indicate that the dreamer will have full control over his wealth.
  106. Listening to the king: Listening to the words of the king, deity, Brahmin, cows and dead ancestors in the dream materialises exactly according to the nature of the words i.e. if they are orating auspicious words, auspicious events will follow and vice versa.
  107. Travelling towards North-east: Travelling towards north-east in a chariot hauled by white oxen indicates that the dreamer will rule the earth.
  108. Receiving of auspicious things: Receiving of things like a blue cow, bow and arrow as well as shoes indicate that the dreamer will go abroad and return soon.
  109. Boat: It indicates an increase in the reputation.
  110. Water: It indicates profit and auspicious occasion.
  111. Urn filled with water: It indicates an auspicious event in the household of the dreamer.
  112. Singing of songs: It is an inauspicious sign that indicates some severe crisis.
  113. Silver: It indicates special benefits.
  114. Ring: It indicates meeting with the beloved one.
  115. Shoes: Sighting of shoes in the dream indicates delicious food for the dreamer.
  116. Lighted lamp: It indicates an increase in the family of the dreamer.
Thus, sighting of apparent auspicious events in the dream has mixed results. Such events in the dream usually augur well but might indicate bad omens as well. Sighting of auspicious things and insignia almost always gives auspicious results. It is not possible to give a complete description of all the auspicious things in a brief frame. Hence whatever things you would regard as auspicious in the society will give you auspicious results if sighted in the dream.
 
SIGHTING OF ANIMALS AND BIRDS
  1. Owl: Sighting of an owl in the dream indicates diseases and depression.
  2. Camel: Sighting of a camel in the dream is an inauspicious sign that indicates an accident.
  3. Cuckoo: Sighting of a cuckoo in the dream is not auspicious. It indicates false accusations on the dreamer.
  4. Black cobra: Sighting of a black cobra in the dream augurs well. It indicates gaining of honour from the state.
  5. Dog: Sighting of dog and biting by it in the dream indicates an increase in the number of enemies.
  6. Pigeon: Sighting of a pigeon in the dream indicates receipt of good news.
  7. Lizard: It indicates gain of wealth suddenly. Some experts regard it inauspicious indication also.
  8. Scorpio: It is an inauspicious sign that indicates an increase in the worries.
  9. Deer: There is again a difference of opinion among the experts. Some experts believe that sighting of a deer in the dream brings good news whereas others feel that it might bring havoc on the dreamer.
  10. Lion: Sighting of lion indicates annihilation of the enemies and defeating them.
  11. Snake: Sighting of the snake in the dream indicates fear and unnecessary tensions. Falling of the snake on body indicates diseases.
  12. Jackal: Sighting of a jackal in the dream indicates some calamity in the future.
  13. Ass: Sighting of an ass in the dream also indicates a future calamity.
  14. Flies, mosquitoes, tics etc.: Sighting of these insects and being surrounded or bitten by them augurs well. It indicates receiving of beautiful wife.
  15. Buffalo: Sighting of a buffalo in the dream indicates some inauspicious event or a mishap. Riding a buffalo in the dream is even worse. Some experts believe that it is an indication of imminent death.

Thus sighting of such animals, which are considered inauspicious like pig in the dream usually, indicates bad omen. There are exceptions too in this regard. On the other hand, sighting of such animals, which are considered auspicious in life like peacock, dove etc. usually augurs well for the dreamer.
 
SIGHTING OF AUSPICIOUS BIRDS AND ANIMALS
  1. Cow: It indicates end of the suffering and gain of the comforts.
  2. Raven: Sighting of a raven perching on the head indicates an increase in the number of enemies and associated troubles.
  3. Ox: It is also an auspicious sign that indicates gain of luxuries.
  4. Elephant: It also indicates an increase in the luxuries.
  5. Horse: An auspicious sign that indicates an increase in the reputation and wealth.
  6. Monkey: It indicates some auspicious occasion in the household.
  7. Deer: it indicates that the dreamer will grow rich in the near future.
  8. Pig: It indicates loss of wealth.
  9. Crow: In real life, sighting of crow and its cawing are regarded as auspicious signs but sighting of the crow in dreams causes loss of wealth.
Cock and hen: These birds are also considered auspicious in real life but sighting of them in the dream is regarded as inauspicious.
 
Some experts however have different opinion.
  1. Waterfowl: It is considered as inauspicious. Sighting of this bird in the dream indicates imminent crisis.
  2. Cormorant: Sighting of this bird in the dream is an inauspicious sign that indicates catastrophe.
  3. Goat: Sighting of goat in the dream also causes loss.
  4. Sparrow and blue Jay: Sighting of blue Jay and sparrow in the dream and getting up subsequently indicates that the dreamer will soon receive a beautiful wife.
  5. Jay and Swan: Sighting of Jay and swan in the dream and getting up subsequently also indicates wealth and good wife.
  6. Stork: It is also an auspicious sign that indicates receiving of a wise and beautiful wife.
  7. Grazing goat: Sighting of the grazing goats and nannies indicate return of the happy days.
  8. Playing with dog: An auspicious sign that indicates many kinds of benefits.
  9. Cats: It indicates loss of wealth or cheating by a friend.
 
SIGHTING OF STRANGE LOOKING PEOPLE
  1. Tonsured formidable man: Death of the dreamer within 2 months.
  2. Chandaal: Calamity or some inauspicious event.
  3. Dirty man with long hair: Loss of reputation.
  4. Man with mutilated or distorted organs: Insult and crisis.
  5. Woman with organs painted red: Imminent death if she hugs the dreamer.
  6. Woman with stenching body and untidy hair: Certainly inauspicious sign if she hugs the dreamer.
  7. Black woman with distorted organs: Imminent death if she hugs the dreamer.
  8. Woman with red eyes and yellow clothes: Death in near future if she hugs the dreamer.
  9. Naked woman with big nails: Death in near future.
  10. Yamadoot: Untimely death.
  11. Butcher and executioner: Death in a year.
  12. Woman carrying cereals in a bowl: Inauspicious indicates destruction if she offers that cereal to the dreamer.
  13. Beheaded man: Serious crisis and inauspicious event.
  14. Beggar: Disease, pains and death.
  15. Widow: Crisis and mourning.
  16. Blind man: Sufferings.
  17. Prostitute: Early marriage.
  18. Wretched woman: Good news.
  19. Horse rider: Successful auspicious journey.
  20. Bathing in blood: Prosperity and end of the crisis.
  21. Beheaded self: Comforts, peace and prosperity as well as increase in life span.
  22. Death of the self: Increase in life span and end of the sufferings.
  23. Biting by the snake: Gain of wealth if the snake bites in the right hand.
  24. Enchained: Gain of wealth and comforts.
  25. Eating of flesh from the limbs: Gain of wealth and prosperity.
  26. Eating of flesh from the head: Gain of kingdom or high designation.
  27. Eating flesh, fat and faeces: Comforts and auspicious occasion.
  28. Death of family member: Gain of wealth and comforts.
  29. Waning Sun and the Moon: Catastrophy on the state.
  30. Falling hair and teeth: Loss of wealth and offspring.
  31. Amputation of limbs: Death or some serious crisis.
  32. Riding an ass and going towards the south: Early death and fearsome crisis.
  33. Rains without season: Serious crisis in the country.
  34. Biting by the dog: Secret attack by the enemy and consequent loss.
  35. Imprisonment: Liberation from crisis and gain of wealth.
  36. Typhoon: Liberation from crisis and sorrows.
  37. Dried river and trees: Death, disease and distress.
  38. Falling mountain peaks and flags: Great sufferings and worries.
  39. Beheading someone: Gain of kingdom or high post.
  40. Swallowing of Sun, Moon and solar system: All the comforts and gain of kingdom.
  41. Drinking of urine and semen of the self: Early gain of wealth.
  42. Death due to consumption of poison: End of crises and gain of all kinds of comforts.
  43. Bleeding and drinking of blood: Richness for the dreamer.
  44. Drinking milk while riding a horse: Gain of kingdom or high designation.
  45. House in the crematorium: Kingdom of the entire earth for the dreamer.
  46. Falling in the trench and climbing up again: Purification of mind and gain of immense wealth.
  47. Sinking in the river and pond: Severe crisis.
  48. Blazing clothes, bedstead and house: Gain of wealth.
  49. Touching of sky, stars and comets: Gain of comforts, wealth and reputation.
  50. Inhaling smoke: Permanent wealth and gain of comforts.
  51. Cyclone and Gail: Death in the near future if the dreamer feels that the cyclone had touched him.
  52. Losing sight and extinguished lamp: Disease or injury to an organ.
  53. Drinking oil: Indication of illness.
  54. Excreting blood: Destruction of wealth and cereals.
  55. Taking retirement: Severe sufferings.
  56. Day without the Sun and night without the Moon: Early death or frightening crisis.
  57. Sleeping on hay, wood and skeleton: Severe crisis and unhappiness.
  58. Sitting on the bed of the deceased: Early death.
  59. Smearing of dung, mud, ash, fermented liquor, honey, oil, ghee and whey on the body: Serious illness, death and inauspicious happening.
  60. Smoking fire from dung cake, wood and coal: Destruction of wealth and cereals.
  61. Excretion of gold and silver: Death within ten months.
  62. Change in shadow: Death within 4 months.
  63. Body smelling like goat and cadaver: Early death. Such symptoms in real life also indicate death of the concerned person within 10 or 15 days.
  64. Naked man or Naaga Sanyasis: Early death of the dreamer.
  65. Cinders, ash and zigzagging river: Serious illness and early death.
  66. Loss of smell: Indicates death.
  67. Clattering teeth: Early death and sufferings.
  68. Killing by the villainous people: Early death within 7 days.
  69. Royal court: Early death.
  70. Drinking wine: Gain of wealth for the Brahmin.
  71. Finding food cooked in oil and copper coins: Illness, sufferings.
  72. Black objects: Inauspicious, causes worries.
  73. Severing of private parts: Gain of desired partner.
TOP
 

Monday 5 October 2015

About c language

ABOUT C LANGUAGE


C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. C was originally first implemented on the DEC PDP-11 computer in 1972.
In 1978, Brian Kernighan and Dennis Ritchie produced the first publicly available description of C, now known as the K&R standard.
The UNIX operating system, the C compiler, and essentially all UNIX applications programs have been written in C. The C has now become a widely used professional language for various reasons.
  • Easy to learn
  • Structured language
  • It produces efficient programs.
  • It can handle low-level activities.
  • It can be compiled on a variety of computer platforms.

Facts about C

  • C was invented to write an operating system called UNIX.
  • C is a successor of B language which was introduced around 1970
  • The language was formalized in 1988 by the American National Standard Institute (ANSI).
  • The UNIX OS was totally written in C by 1973.
  • Today C is the most widely used and popular System Programming Language.
  • Most of the state-of-the-art softwares have been implemented using C.
  • Today's most popular Linux OS and RBDMS MySQL have been written in C.

Why to use C?

C was initially used for system development work, in particular the programs that make-up the operating system. C was adopted as a system development language because it produces code that runs nearly as fast as code written in assembly language. Some examples of the use of C might be:
  • Operating Systems
  • Language Compilers
  • Assemblers
  • Text Editors
  • Print Spoolers
  • Network Drivers
  • Modern Programs
  • Databases
  • Language Interpreters
  • Utilities

C Programs

A C program can vary from 3 lines to millions of lines and it should be written into one or more text files with extension ".c"; for example, hello.c. You can use "vi""vim" or any other text editor to write your C program into a file.
This tutorial assumes that you know how to edit a text file and how to write source code inside a program file.

Try it Option Online

You really do not need to set up your own environment to start learning C programming language. Reason is very simple, we already have set up C Programming environment online, so that you can compile and execute all the available examples online at the same time when you are doing your theory work. This gives you confidence in what you are reading and to check the result with different options. Feel free to modify any example and execute it online.
Try following example using Try it option available at the top right corner of the below sample code box:
#include <stdio.h>

int main()
{
   /* my first program in C */
   printf("Hello, World! \n");
   
   return 0;
}
For most of the examples given in this tutorial, you will find Try itoption, so just make use of it and enjoy your learning.

Local Environment Setup

If you are still willing to set up your environment for C programming language, you need the following two softwares available on your computer, (a) Text Editor and (b) The C Compiler.

Text Editor

This will be used to type your program. Examples of few editors include Windows Notepad, OS Edit command, Brief, Epsilon, EMACS, and vim or vi.
Name and version of text editor can vary on different operating systems. For example, Notepad will be used on Windows, and vim or vi can be used on windows as well as Linux or UNIX.
The files you create with your editor are called source files and contain program source code. The source files for C programs are typically named with the extension ".c".
Before starting your programming, make sure you have one text editor in place and you have enough experience to write a computer program, save it in a file, compile it and finally execute it.

The C Compiler

The source code written in source file is the human readable source for your program. It needs to be "compiled", to turn into machine language so that your CPU can actually execute the program as per instructions given.
This C programming language compiler will be used to compile your source code into final executable program. I assume you have basic knowledge about a programming language compiler.
Most frequently used and free available compiler is GNU C/C++ compiler, otherwise you can have compilers either from HP or Solaris if you have respective Operating Systems.
Following section guides you on how to install GNU C/C++ compiler on various OS. I'm mentioning C/C++ together because GNU gcc compiler works for both C and C++ programming languages.

Installation on UNIX/Linux

If you are using Linux or UNIX, then check whether GCC is installed on your system by entering the following command from the command line:
$ gcc -v
If you have GNU compiler installed on your machine, then it should print a message something as follows:
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
If GCC is not installed, then you will have to install it yourself using the detailed instructions available at http://gcc.gnu.org/install/
This tutorial has been written based on Linux and all the given examples have been compiled on Cent OS flavor of Linux system.

Installation on Mac OS

If you use Mac OS X, the easiest way to obtain GCC is to download the Xcode development environment from Apple's web site and follow the simple installation instructions. Once you have Xcode setup, you will be able to use GNU compiler for C/C++.
Xcode is currently available at developer.apple.com/technologies/tools/.

Installation on Windows

To install GCC at Windows you need to install MinGW. To install MinGW, go to the MinGW homepage, www.mingw.org, and follow the link to the MinGW download page. Download the latest version of the MinGW installation program, which should be named MinGW-<version>.exe.
While installing MinWG, at a minimum, you must install gcc-core, gcc-g++, binutils, and the MinGW runtime, but you may wish to install more.
Add the bin subdirectory of your MinGW installation to your PATH environment variable, so that you can specify these tools on the command line by their simple names.
When the installation is complete, you will be able to run gcc, g++, ar, ranlib, dlltool, and several other GNU tools from the Windows command line.
Before we study basic building blocks of the C programming language, let us look a bare minimum C program structure so that we can take it as a reference in upcoming chapters.

C Hello World Example

A C program basically consists of the following parts:
  • Preprocessor Commands
  • Functions
  • Variables
  • Statements & Expressions
  • Comments
Let us look at a simple code that would print the words "Hello World":
#include <stdio.h>

int main()
{
   /* my first program in C */
   printf("Hello, World! \n");
   
   return 0;
}
Let us look various parts of the above program:
  1. The first line of the program #include <stdio.h> is a preprocessor command, which tells a C compiler to include stdio.h file before going to actual compilation.
  2. The next line int main() is the main function where program execution begins.
  3. The next line /*...*/ will be ignored by the compiler and it has been put to add additional comments in the program. So such lines are called comments in the program.
  4. The next line printf(...) is another function available in C which causes the message "Hello, World!" to be displayed on the screen.
  5. The next line return 0; terminates main()function and returns the value 0.

Compile & Execute C Program:

Lets look at how to save the source code in a file, and how to compile and run it. Following are the simple steps:
  1. Open a text editor and add the above-mentioned code.
  2. Save the file as hello.c
  3. Open a command prompt and go to the directory where you saved the file.
  4. Type gcc hello.c and press enter to compile your code.
  5. If there are no errors in your code the command prompt will take you to the next line and would generate a.out executable file.
  6. Now, type a.out to execute your program.
  7. You will be able to see "Hello World" printed on the screen
$ gcc hello.c
$ ./a.out
Hello, World!
Make sure that gcc compiler is in your path and that you are running it in the directory containing source file hello.c.
You have seen a basic structure of C program, so it will be easy to understand other basic building blocks of the C programming language.

Tokens in C

A C program consists of various tokens and a token is either a keyword, an identifier, a constant, a string literal, or a symbol. For example, the following C statement consists of five tokens:
printf("Hello, World! \n");
The individual tokens are:
printf
(
"Hello, World! \n"
)
;

Semicolons ;

In C program, the semicolon is a statement terminator. That is, each individual statement must be ended with a semicolon. It indicates the end of one logical entity.
For example, following are two different statements:
printf("Hello, World! \n");
return 0;

Comments

Comments are like helping text in your C program and they are ignored by the compiler. They start with /* and terminates with the characters */ as shown below:
/* my first program in C */
You cannot have comments within comments and they do not occur within a string or character literals.

Identifiers

A C identifier is a name used to identify a variable, function, or any other user-defined item. An identifier starts with a letter A to Z or a to z or an underscore _ followed by zero or more letters, underscores, and digits (0 to 9).
C does not allow punctuation characters such as @, $, and % within identifiers. C is a case sensitive programming language. Thus, Manpower and manpowerare two different identifiers in C. Here are some examples of acceptable identifiers:
mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

Keywords

The following list shows the reserved words in C. These reserved words may not be used as constant or variable or any other identifier names.
autoelselongswitch
breakenumregistertypedef
caseexternreturnunion
charfloatshortunsigned
constforsignedvoid
continuegotosizeofvolatile
defaultifstaticwhile
dointstruct_Packed
double   

Whitespace in C

A line containing only whitespace, possibly with a comment, is known as a blank line, and a C compiler totally ignores it.
Whitespace is the term used in C to describe blanks, tabs, newline characters and comments. Whitespace separates one part of a statement from another and enables the compiler to identify where one element in a statement, such as int, ends and the next element begins. Therefore, in the following statement:
int age;
There must be at least one whitespace character (usually a space) between int and age for the compiler to be able to distinguish them. On the other hand, in the following statement:
fruit = apples + oranges;   // get the total fruit
No whitespace characters are necessary between fruit and =, or between = and apples, although you are free to include some if you wish for readability purpose.
In the C programming language, data types refer to an extensive system used for declaring variables or functions of different types. The type of a variable determines how much space it occupies in storage and how the bit pattern stored is interpreted.
The types in C can be classified as follows:
S.N.Types and Description
1Basic Types:
They are arithmetic types and consists of the two types: (a) integer types and (b) floating-point types.
2Enumerated types:
They are again arithmetic types and they are used to define variables that can only be assigned certain discrete integer values throughout the program.
3The type void:
The type specifier void indicates that no value is available.
4Derived types:
They include (a) Pointer types, (b) Array types, (c) Structure types, (d) Union types and (e) Function types.
The array types and structure types are referred to collectively as the aggregate types. The type of a function specifies the type of the function's return value. We will see basic types in the following section, whereas, other types will be covered in the upcoming chapters.

Integer Types

Following table gives you details about standard integer types with its storage sizes and value ranges:
TypeStorage sizeValue range
char1 byte-128 to 127 or 0 to 255
unsigned char1 byte0 to 255
signed char1 byte-128 to 127
int2 or 4 bytes-32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
unsigned int2 or 4 bytes0 to 65,535 or 0 to 4,294,967,295
short2 bytes-32,768 to 32,767
unsigned short2 bytes0 to 65,535
long4 bytes-2,147,483,648 to 2,147,483,647
unsigned long4 bytes0 to 4,294,967,295
To get the exact size of a type or a variable on a particular platform, you can use the sizeof operator. The expressions sizeof(type) yields the storage size of the object or type in bytes. Following is an example to get the size of int type on any machine:
#include <stdio.h>
#include <limits.h>

int main()
{
   printf("Storage size for int : %d \n", sizeof(int));
   
   return 0;
}
When you compile and execute the above program it produces the following result on Linux:
Storage size for int : 4

Floating-Point Types

Following table gives you details about standard floating-point types with storage sizes and value ranges and their precision:
TypeStorage sizeValue rangePrecision
float4 byte1.2E-38 to 3.4E+386 decimal places
double8 byte2.3E-308 to 1.7E+30815 decimal places
long double10 byte3.4E-4932 to 1.1E+493219 decimal places
The header file float.h defines macros that allow you to use these values and other details about the binary representation of real numbers in your programs. Following example will print storage space taken by a float type and its range values:
#include <stdio.h>
#include <float.h>

int main()
{
   printf("Storage size for float : %d \n", sizeof(float));
   printf("Minimum float positive value: %E\n", FLT_MIN );
   printf("Maximum float positive value: %E\n", FLT_MAX );
   printf("Precision value: %d\n", FLT_DIG );
   
   return 0;
}
When you compile and execute the above program, it produces the following result on Linux:
Storage size for float : 4
Minimum float positive value: 1.175494E-38
Maximum float positive value: 3.402823E+38
Precision value: 6

The void Type

The void type specifies that no value is available. It is used in three kinds of situations:
S.N.Types and Description
1Function returns as void
There are various functions in C which do not return value or you can say they return void. A function with no return value has the return type as void. For example void exit (int status);
2Function arguments as void
There are various functions in C which do not accept any parameter. A function with no parameter can accept as a void. For example, int rand(void);
3Pointers to void
A pointer of type void * represents the address of an object, but not its type. For example a memory allocation function void *malloc( size_t size ); returns a pointer to void which can be casted to any data type.
The void type may not be understood to you at this point, so let us proceed and we will cover these concepts in the upcoming chapters.
A variable is nothing but a name given to a storage area that our programs can manipulate. Each variable in C has a specific type, which determines the size and layout of the variable's memory; the range of values that can be stored within that memory; and the set of operations that can be applied to the variable.
The name of a variable can be composed of letters, digits, and the underscore character. It must begin with either a letter or an underscore. Upper and lowercase letters are distinct because C is case-sensitive. Based on the basic types explained in previous chapter, there will be the following basic variable types:
TypeDescription
charTypically a single octet(one byte). This is an integer type.
intThe most natural size of integer for the machine.
floatA single-precision floating point value.
doubleA double-precision floating point value.
voidRepresents the absence of type.
C programming language also allows to define various other types of variables, which we will cover in subsequent chapters like Enumeration, Pointer, Array, Structure, Union, etc. For this chapter, let us study only basic variable types.

Variable Definition in C:

A variable definition means to tell the compiler where and how much to create the storage for the variable. A variable definition specifies a data type and contains a list of one or more variables of that type as follows:
type variable_list;
Here, type must be a valid C data type including char, w_char, int, float, double, bool or any user-defined object, etc., and variable_list may consist of one or more identifier names separated by commas. Some valid declarations are shown here:
int    i, j, k;
char   c, ch;
float  f, salary;
double d;
The line int i, j, k; both declares and defines the variables i, j and k; which instructs the compiler to create variables named i, j and k of type int.
Variables can be initialized (assigned an initial value) in their declaration. The initializer consists of an equal sign followed by a constant expression as follows:
type variable_name = value;
Some examples are:
extern int d = 3, f = 5;    // declaration of d and f. 
int d = 3, f = 5;           // definition and initializing d and f. 
byte z = 22;                // definition and initializes z. 
char x = 'x';               // the variable x has the value 'x'.
For definition without an initializer: variables with static storage duration are implicitly initialized with NULL (all bytes have the value 0); the initial value of all other variables is undefined.

Variable Declaration in C:

A variable declaration provides assurance to the compiler that there is one variable existing with the given type and name so that compiler proceed for further compilation without needing complete detail about the variable. A variable declaration has its meaning at the time of compilation only, compiler needs actual variable declaration at the time of linking of the program.
A variable declaration is useful when you are using multiple files and you define your variable in one of the files which will be available at the time of linking of the program. You will use extern keyword to declare a variable at any place. Though you can declare a variable multiple times in your C program but it can be defined only once in a file, a function or a block of code.

Example

Try following example, where variables have been declared at the top, but they have been defined and initialized inside the main function:
#include <stdio.h>

// Variable declaration:
extern int a, b;
extern int c;
extern float f;

int main ()
{
  /* variable definition: */
  int a, b;
  int c;
  float f;
 
  /* actual initialization */
  a = 10;
  b = 20;
  
  c = a + b;
  printf("value of c : %d \n", c);

  f = 70.0/3.0;
  printf("value of f : %f \n", f);
 
  return 0;
}
When the above code is compiled and executed, it produces the following result:
value of c : 30
value of f : 23.333334
Same concept applies on function declaration where you provide a function name at the time of its declaration and its actual definition can be given anywhere else. For example:
// function declaration
int func();

int main()
{
    // function call
    int i = func();
}

// function definition
int func()
{
    return 0;
}

Lvalues and Rvalues in C:

There are two kinds of expressions in C:
  1. lvalue : Expressions that refer to a memory location is called "lvalue" expression. An lvalue may appear as either the left-hand or right-hand side of an assignment.
  2. rvalue : The term rvalue refers to a data value that is stored at some address in memory. An rvalue is an expression that cannot have a value assigned to it which means an rvalue may appear on the right- but not left-hand side of an assignment.
Variables are lvalues and so may appear on the left-hand side of an assignment. Numeric literals are rvalues and so may not be assigned and can not appear on the left-hand side. Following is a valid statement:
int g = 20;
But following is not a valid statement and would generate compile-time error:
10 = 20;
The constants refer to fixed values that the program may not alter during its execution. These fixed values are also called literals.
Constants can be of any of the basic data types like an integer constant, a floating constant, a character constant, or a string literal. There are also enumeration constants as well.
The constants are treated just like regular variables except that their values cannot be modified after their definition.

Integer literals

An integer literal can be a decimal, octal, or hexadecimal constant. A prefix specifies the base or radix: 0x or 0X for hexadecimal, 0 for octal, and nothing for decimal.
An integer literal can also have a suffix that is a combination of U and L, for unsigned and long, respectively. The suffix can be uppercase or lowercase and can be in any order.
Here are some examples of integer literals:
212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 8 is not an octal digit */
032UU       /* Illegal: cannot repeat a suffix */
Following are other examples of various type of Integer literals:
85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

Floating-point literals

A floating-point literal has an integer part, a decimal point, a fractional part, and an exponent part. You can represent floating point literals either in decimal form or exponential form.
While representing using decimal form, you must include the decimal point, the exponent, or both and while representing using exponential form, you must include the integer part, the fractional part, or both. The signed exponent is introduced by e or E.
Here are some examples of floating-point literals:
3.14159       /* Legal */
314159E-5L    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

Character constants

Character literals are enclosed in single quotes, e.g., 'x' and can be stored in a simple variable of char type.
A character literal can be a plain character (e.g., 'x'), an escape sequence (e.g., '\t'), or a universal character (e.g., '\u02C0').
There are certain characters in C when they are preceded by a backslash they will have special meaning and they are used to represent like newline (\n) or tab (\t). Here, you have a list of some of such escape sequence codes:
Escape sequenceMeaning
\\\ character
\'' character
\"" character
\?? character
\aAlert or bell
\bBackspace
\fForm feed
\nNewline
\rCarriage return
\tHorizontal tab
\vVertical tab
\oooOctal number of one to three digits
\xhh . . .Hexadecimal number of one or more digits
Following is the example to show few escape sequence characters:
#include <stdio.h>

int main()
{
   printf("Hello\tWorld\n\n");

   return 0;
}
When the above code is compiled and executed, it produces the following result:
Hello   World

String literals

String literals or constants are enclosed in double quotes "". A string contains characters that are similar to character literals: plain characters, escape sequences, and universal characters.
You can break a long line into multiple lines using string literals and separating them using whitespaces.
Here are some examples of string literals. All the three forms are identical strings.
"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

Defining Constants

There are two simple ways in C to define constants:
  1. Using #define preprocessor.
  2. Using const keyword.

The #define Preprocessor

Following is the form to use #define preprocessor to define a constant:
#define identifier value
Following example explains it in detail:
#include <stdio.h>

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

int main()
{

   int area;  
  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}
When the above code is compiled and executed, it produces the following result:
value of area : 50

The const Keyword

You can use const prefix to declare constants with a specific type as follows:
const type variable = value;
Following example explains it in detail:
#include <stdio.h>

int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}
When the above code is compiled and executed, it produces the following result:
value of area : 50
Note that it is a good programming practice to define constants in CAPITALS.
A storage class defines the scope (visibility) and life-time of variables and/or functions within a C Program. These specifiers precede the type that they modify. There are the following storage classes, which can be used in a C Program
  • auto
  • register
  • static
  • extern

The auto Storage Class

The auto storage class is the default storage class for all local variables.
{
   int mount;
   auto int month;
}
The example above defines two variables with the same storage class, auto can only be used within functions, i.e., local variables.

The register Storage Class

The register storage class is used to define local variables that should be stored in a register instead of RAM. This means that the variable has a maximum size equal to the register size (usually one word) and can't have the unary '&' operator applied to it (as it does not have a memory location).
{
   register int  miles;
}
The register should only be used for variables that require quick access such as counters. It should also be noted that defining 'register' does not mean that the variable will be stored in a register. It means that it MIGHT be stored in a register depending on hardware and implementation restrictions.

The static Storage Class

The static storage class instructs the compiler to keep a local variable in existence during the life-time of the program instead of creating and destroying it each time it comes into and goes out of scope. Therefore, making local variables static allows them to maintain their values between function calls.
The static modifier may also be applied to global variables. When this is done, it causes that variable's scope to be restricted to the file in which it is declared.
In C programming, when static is used on a class data member, it causes only one copy of that member to be shared by all objects of its class.
#include <stdio.h>
 
/* function declaration */
void func(void);
 
static int count = 5; /* global variable */
 
main()
{
   while(count--)
   {
      func();
   }
   return 0;
}
/* function definition */
void func( void )
{
   static int i = 5; /* local static variable */
   i++;

   printf("i is %d and count is %d\n", i, count);
}
You may not understand this example at this time because I have used functionand global variables, which I have not explained so far. So for now let us proceed even if you do not understand it completely. When the above code is compiled and executed, it produces the following result:
i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

The extern Storage Class

The extern storage class is used to give a reference of a global variable that is visible to ALL the program files. When you use 'extern', the variable cannot be initialized as all it does is point the variable name at a storage location that has been previously defined.
When you have multiple files and you define a global variable or function, which will be used in other files also, then extern will be used in another file to give reference of defined variable or function. Just for understanding, extern is used to declare a global variable or function in another file.
The extern modifier is most commonly used when there are two or more files sharing the same global variables or functions as explained below.
First File: main.c
#include <stdio.h>
 
int count ;
extern void write_extern();
 
main()
{
   count = 5;
   write_extern();
}
Second File: support.c
#include <stdio.h>
 
extern int count;
 
void write_extern(void)
{
   printf("count is %d\n", count);
}
Here, extern keyword is being used to declare count in the second file where as it has its definition in the first file, main.c. Now, compile these two files as follows:
 $gcc main.c support.c
This will produce a.out executable program, when this program is executed, it produces the following result:
5

An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations. C language is rich in built-in operators and provides the following types of operators:
  • Arithmetic Operators
  • Relational Operators
  • Logical Operators
  • Bitwise Operators
  • Assignment Operators
  • Misc Operators
This tutorial will explain the arithmetic, relational, logical, bitwise, assignment and other operators one by one.

Arithmetic Operators

Following table shows all the arithmetic operators supported by C language. Assume variable A holds 10 and variable B holds 20 then:
OperatorDescriptionExample
+Adds two operandsA + B will give 30
-Subtracts second operand from the firstA - B will give -10
*Multiplies both operandsA * B will give 200
/Divides numerator by de-numeratorB / A will give 2
%Modulus Operator and remainder of after an integer divisionB % A will give 0
++Increments operator increases integer value by oneA++ will give 11
--Decrements operator decreases integer value by oneA-- will give 9

Relational Operators

Following table shows all the relational operators supported by C language. Assume variable A holds 10 and variable B holds 20, then:
OperatorDescriptionExample
==Checks if the values of two operands are equal or not, if yes then condition becomes true.(A == B) is not true.
!=Checks if the values of two operands are equal or not, if values are not equal then condition becomes true.(A != B) is true.
>Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.(A > B) is not true.
<Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.(A < B) is true.
>=Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.(A >= B) is not true.
<=Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.(A <= B) is true.

Logical Operators

Following table shows all the logical operators supported by C language. Assume variable A holds 1 and variable B holds 0, then:
OperatorDescriptionExample
&&Called Logical AND operator. If both the operands are non-zero, then condition becomes true.(A && B) is false.
||Called Logical OR Operator. If any of the two operands is non-zero, then condition becomes true(A || B) is true.
!Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.!(A && B) is true.

Bitwise Operators

Bitwise operator works on bits and perform bit-by-bit operation. The truth tables for &, |, and ^ are as follows:
pqp & qp | qp ^ q
00000
01011
11110
10011
Assume if A = 60; and B = 13; now in binary format they will be as follows:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A  = 1100 0011
The Bitwise operators supported by C language are listed in the following table. Assume variable A holds 60 and variable B holds 13, then:
OperatorDescriptionExample
&Binary AND Operator copies a bit to the result if it exists in both operands.(A & B) will give 12, which is 0000 1100
|Binary OR Operator copies a bit if it exists in either operand.(A | B) will give 61, which is 0011 1101
^Binary XOR Operator copies the bit if it is set in one operand but not both.(A ^ B) will give 49, which is 0011 0001
~Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.(~A ) will give -61, which is 1100 0011 in 2's complement form.
<<Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.A << 2 will give 240 which is 1111 0000
>>Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.A >> 2 will give 15 which is 0000 1111

Assignment Operators

There are following assignment operators supported by C language:
OperatorDescriptionExample
=Simple assignment operator, Assigns values from right side operands to left side operandC = A + B will assign value of A + B into C
+=Add AND assignment operator, It adds right operand to the left operand and assign the result to left operandC += A is equivalent to C = C + A
-=Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operandC -= A is equivalent to C = C - A
*=Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operandC *= A is equivalent to C = C * A
/=Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operandC /= A is equivalent to C = C / A
%=Modulus AND assignment operator, It takes modulus using two operands and assign the result to left operandC %= A is equivalent to C = C % A
<<=Left shift AND assignment operatorC <<= 2 is same as C = C << 2
>>=Right shift AND assignment operatorC >>= 2 is same as C = C >> 2
&=Bitwise AND assignment operatorC &= 2 is same as C = C & 2
^=bitwise exclusive OR and assignment operatorC ^= 2 is same as C = C ^ 2
|=bitwise inclusive OR and assignment operatorC |= 2 is same as C = C | 2

Misc Operators ↦ sizeof & ternary

There are few other important operators including sizeof and ? : supported by C Language.
OperatorDescriptionExample
sizeof()Returns the size of an variable.sizeof(a), where a is integer, will return 4.
&Returns the address of an variable.&a; will give actual address of the variable.
*Pointer to a variable.*a; will pointer to a variable.
? :Conditional ExpressionIf Condition is true ? Then value X : Otherwise value Y

Operators Precedence in C

Operator precedence determines the grouping of terms in an expression. This affects how an expression is evaluated. Certain operators have higher precedence than others; for example, the multiplication operator has higher precedence than the addition operator.
For example x = 7 + 3 * 2; here, x is assigned 13, not 20 because operator * has higher precedence than +, so it first gets multiplied with 3*2 and then adds into 7.
Here, operators with the highest precedence appear at the top of the table, those with the lowest appear at the bottom. Within an expression, higher precedence operators will be evaluated first.
Category Operator Associativity 
Postfix () [] -> . ++ - -  Left to right 
Unary + - ! ~ ++ - - (type)* & sizeof Right to left 
Multiplicative  * / % Left to right 
Additive  + - Left to right 
Shift  << >> Left to right 
Relational  < <= > >= Left to right 
Equality  == != Left to right 
Bitwise AND Left to right 
Bitwise XOR Left to right 
Bitwise OR Left to right 
Logical AND && Left to right 
Logical OR || Left to right 
Conditional ?: Right to left 
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left 
Comma 
Decision making structures require that the programmer specify one or more conditions to be evaluated or tested by the program, along with a statement or statements to be executed if the condition is determined to be true, and optionally, other statements to be executed if the condition is determined to be false.
Following is the general form of a typical decision making structure found in most of the programming languages:
Decision making statements in C
C programming language assumes any non-zero and non-null values as true, and if it is either zero or null, then it is assumed as false value.
C programming language provides following types of decision making statements. Click the following links to check their detail.
StatementDescription
An if statement consists of a boolean expression followed by one or more statements.
An if statement can be followed by an optional else statement, which executes when the boolean expression is false.
You can use one if or else if statement inside another if or else if statement(s).
switch statement allows a variable to be tested for equality against a list of values.
You can use one switch statement inside anotherswitch statement(s).

The ? : Operator:

We have covered conditional operator ? : in previous chapter which can be used to replace if...else statements. It has the following general form:
Exp1 ? Exp2 : Exp3;

Where Exp1, Exp2, and Exp3 are expressions. Notice the use and placement of the colon.
The value of a ? expression is determined like this: Exp1 is evaluated. If it is true, then Exp2 is evaluated and becomes the value of the entire ? expression. If Exp1 is false, then Exp3 is evaluated and its value becomes the value of the expression.
There may be a situation, when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages:
Loop Architecture
C programming language provides the following types of loop to handle looping requirements. Click the following links to check their detail.
Loop TypeDescription
Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body.
Execute a sequence of statements multiple times and abbreviates the code that manages the loop variable.
Like a while statement, except that it tests the condition at the end of the loop body
You can use one or more loop inside any another while, for or do..while loop.

Loop Control Statements:

Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.
C supports the following control statements. Click the following links to check their detail.
Control StatementDescription
Terminates the loop or switch statement and transfers execution to the statement immediately following the loop or switch.
Causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating.
Transfers control to the labeled statement. Though it is not advised to use goto statement in your program.

The Infinite Loop:

A loop becomes infinite loop if a condition never becomes false. The for loop is traditionally used for this purpose. Since none of the three expressions that form the for loop are required, you can make an endless loop by leaving the conditional expression empty.
#include <stdio.h>
 
int main ()
{

   for( ; ; )
   {
      printf("This loop will run forever.\n");
   }

   return 0;
}
When the conditional expression is absent, it is assumed to be true. You may have an initialization and increment expression, but C programmers more commonly use the for(;;) construct to signify an infinite loop.
NOTE: You can terminate an infinite loop by pressing Ctrl + C keys.
There may be a situation, when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages:
Loop Architecture
C programming language provides the following types of loop to handle looping requirements. Click the following links to check their detail.
Loop TypeDescription
Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body.
Execute a sequence of statements multiple times and abbreviates the code that manages the loop variable.
Like a while statement, except that it tests the condition at the end of the loop body
You can use one or more loop inside any another while, for or do..while loop.

Loop Control Statements:

Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.
C supports the following control statements. Click the following links to check their detail.
Control StatementDescription
Terminates the loop or switch statement and transfers execution to the statement immediately following the loop or switch.
Causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating.
Transfers control to the labeled statement. Though it is not advised to use goto statement in your program.

The Infinite Loop:

A loop becomes infinite loop if a condition never becomes false. The for loop is traditionally used for this purpose. Since none of the three expressions that form the for loop are required, you can make an endless loop by leaving the conditional expression empty.
#include <stdio.h>
 
int main ()
{

   for( ; ; )
   {
      printf("This loop will run forever.\n");
   }

   return 0;
}
When the conditional expression is absent, it is assumed to be true. You may have an initialization and increment expression, but C programmers more commonly use the for(;;) construct to signify an infinite loop.
NOTE: You can terminate an infinite loop by pressing Ctrl + C keys.
There may be a situation, when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages:
Loop Architecture
C programming language provides the following types of loop to handle looping requirements. Click the following links to check their detail.
Loop TypeDescription
Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body.
Execute a sequence of statements multiple times and abbreviates the code that manages the loop variable.
Like a while statement, except that it tests the condition at the end of the loop body
You can use one or more loop inside any another while, for or do..while loop.

Loop Control Statements:

Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.
C supports the following control statements. Click the following links to check their detail.
Control StatementDescription
Terminates the loop or switch statement and transfers execution to the statement immediately following the loop or switch.
Causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating.
Transfers control to the labeled statement. Though it is not advised to use goto statement in your program.

The Infinite Loop:

A loop becomes infinite loop if a condition never becomes false. The for loop is traditionally used for this purpose. Since none of the three expressions that form the for loop are required, you can make an endless loop by leaving the conditional expression empty.
#include <stdio.h>
 
int main ()
{

   for( ; ; )
   {
      printf("This loop will run forever.\n");
   }

   return 0;
}
When the conditional expression is absent, it is assumed to be true. You may have an initialization and increment expression, but C programmers more commonly use the for(;;) construct to signify an infinite loop.
NOTE: You can terminate an infinite loop by pressing Ctrl + C keys.
There may be a situation, when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages:
Loop Architecture
C programming language provides the following types of loop to handle looping requirements. Click the following links to check their detail.
Loop TypeDescription
Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body.
Execute a sequence of statements multiple times and abbreviates the code that manages the loop variable.
Like a while statement, except that it tests the condition at the end of the loop body
You can use one or more loop inside any another while, for or do..while loop.

Loop Control Statements:

Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.
C supports the following control statements. Click the following links to check their detail.
Control StatementDescription
Terminates the loop or switch statement and transfers execution to the statement immediately following the loop or switch.
Causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating.
Transfers control to the labeled statement. Though it is not advised to use goto statement in your program.

The Infinite Loop:

A loop becomes infinite loop if a condition never becomes false. The for loop is traditionally used for this purpose. Since none of the three expressions that form the for loop are required, you can make an endless loop by leaving the conditional expression empty.
#include <stdio.h>
 
int main ()
{

   for( ; ; )
   {
      printf("This loop will run forever.\n");
   }

   return 0;
}
When the conditional expression is absent, it is assumed to be true. You may have an initialization and increment expression, but C programmers more commonly use the for(;;) construct to signify an infinite loop.
NOTE: You can terminate an infinite loop by pressing Ctrl + C keys.
There may be a situation, when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages:
Loop Architecture
C programming language provides the following types of loop to handle looping requirements. Click the following links to check their detail.
Loop TypeDescription
Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body.
Execute a sequence of statements multiple times and abbreviates the code that manages the loop variable.
Like a while statement, except that it tests the condition at the end of the loop body
You can use one or more loop inside any another while, for or do..while loop.

Loop Control Statements:

Loop control statements change execution from its normal sequence. When execution leaves a scope, all automatic objects that were created in that scope are destroyed.
C supports the following control statements. Click the following links to check their detail.
Control StatementDescription
Terminates the loop or switch statement and transfers execution to the statement immediately following the loop or switch.
Causes the loop to skip the remainder of its body and immediately retest its condition prior to reiterating.
Transfers control to the labeled statement. Though it is not advised to use goto statement in your program.

The Infinite Loop:

A loop becomes infinite loop if a condition never becomes false. The for loop is traditionally used for this purpose. Since none of the three expressions that form the for loop are required, you can make an endless loop by leaving the conditional expression empty.
#include <stdio.h>
 
int main ()
{

   for( ; ; )
   {
      printf("This loop will run forever.\n");
   }

   return 0;
}
When the conditional expression is absent, it is assumed to be true. You may have an initialization and increment expression, but C programmers more commonly use the for(;;) construct to signify an infinite loop.
NOTE: You can terminate an infinite loop by pressing Ctrl + C keys.
A function is a group of statements that together perform a task. Every C program has at least one function, which is main(), and all the most trivial programs can define additional functions.
You can divide up your code into separate functions. How you divide up your code among different functions is up to you, but logically the division usually is so each function performs a specific task.
A function declaration tells the compiler about a function's name, return type, and parameters. A function definition provides the actual body of the function.
The C standard library provides numerous built-in functions that your program can call. For example, function strcat() to concatenate two strings, functionmemcpy() to copy one memory location to another location and many more functions.
A function is known with various names like a method or a sub-routine or a procedure, etc.

Defining a Function:

The general form of a function definition in C programming language is as follows:
return_type function_name( parameter list )
{
   body of the function
}
A function definition in C programming language consists of a function headerand a function body. Here are all the parts of a function:
  • Return Type: A function may return a value. The return_type is the data type of the value the function returns. Some functions perform the desired operations without returning a value. In this case, the return_type is the keyword void.
  • Function Name: This is the actual name of the function. The function name and the parameter list together constitute the function signature.
  • Parameters: A parameter is like a placeholder. When a function is invoked, you pass a value to the parameter. This value is referred to as actual parameter or argument. The parameter list refers to the type, order, and number of the parameters of a function. Parameters are optional; that is, a function may contain no parameters.
  • Function Body: The function body contains a collection of statements that define what the function does.

Example:

Following is the source code for a function called max(). This function takes two parameters num1 and num2 and returns the maximum between the two:
/* function returning the max between two numbers */
int max(int num1, int num2) 
{
   /* local variable declaration */
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

Function Declarations:

A function declaration tells the compiler about a function name and how to call the function. The actual body of the function can be defined separately.
A function declaration has the following parts:
return_type function_name( parameter list );
For the above defined function max(), following is the function declaration:
int max(int num1, int num2);
Parameter names are not important in function declaration only their type is required, so following is also valid declaration:
int max(int, int);
Function declaration is required when you define a function in one source file and you call that function in another file. In such case you should declare the function at the top of the file calling the function.

Calling a Function:

While creating a C function, you give a definition of what the function has to do. To use a function, you will have to call that function to perform the defined task.
When a program calls a function, program control is transferred to the called function. A called function performs defined task and when its return statement is executed or when its function-ending closing brace is reached, it returns program control back to the main program.
To call a function, you simply need to pass the required parameters along with function name, and if function returns a value, then you can store returned value. For example:
#include <stdio.h>
 
/* function declaration */
int max(int num1, int num2);
 
int main ()
{
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;
 
   /* calling a function to get max value */
   ret = max(a, b);
 
   printf( "Max value is : %d\n", ret );
 
   return 0;
}
 
/* function returning the max between two numbers */
int max(int num1, int num2) 
{
   /* local variable declaration */
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}
I kept max() function along with main() function and compiled the source code. While running final executable, it would produce the following result:
Max value is : 200

Function Arguments:

If a function is to use arguments, it must declare variables that accept the values of the arguments. These variables are called the formal parameters of the function.
The formal parameters behave like other local variables inside the function and are created upon entry into the function and destroyed upon exit.
While calling a function, there are two ways that arguments can be passed to a function:
Call TypeDescription
This method copies the actual value of an argument into the formal parameter of the function. In this case, changes made to the parameter inside the function have no effect on the argument.
This method copies the address of an argument into the formal parameter. Inside the function, the address is used to access the actual argument used in the call. This means that changes made to the parameter affect the argument.
By default, C uses call by value to pass arguments. In general, this means that code within a function cannot alter the arguments used to call the function and above mentioned example while calling max() function used the same method.
A scope in any programming is a region of the program where a defined variable can have its existence and beyond that variable can not be accessed. There are three places where variables can be declared in C programming language:
  1. Inside a function or a block which is called local variables,
  2. Outside of all functions which is called global variables.
  3. In the definition of function parameters which is called formal parameters.
Let us explain what are local and global variables and formal parameters.

Local Variables

Variables that are declared inside a function or block are called local variables. They can be used only by statements that are inside that function or block of code. Local variables are not known to functions outside their own. Following is the example using local variables. Here all the variables a, b and c are local to main() function.
#include <stdio.h>
 
int main ()
{
  /* local variable declaration */
  int a, b;
  int c;
 
  /* actual initialization */
  a = 10;
  b = 20;
  c = a + b;
 
  printf ("value of a = %d, b = %d and c = %d\n", a, b, c);
 
  return 0;
}

Global Variables

Global variables are defined outside of a function, usually on top of the program. The global variables will hold their value throughout the lifetime of your program and they can be accessed inside any of the functions defined for the program.
A global variable can be accessed by any function. That is, a global variable is available for use throughout your entire program after its declaration. Following is the example using global and local variables:
#include <stdio.h>
 
/* global variable declaration */
int g;
 
int main ()
{
  /* local variable declaration */
  int a, b;
 
  /* actual initialization */
  a = 10;
  b = 20;
  g = a + b;
 
  printf ("value of a = %d, b = %d and g = %d\n", a, b, g);
 
  return 0;
}
A program can have same name for local and global variables but value of local variable inside a function will take preference. Following is an example:
#include <stdio.h>
 
/* global variable declaration */
int g = 20;
 
int main ()
{
  /* local variable declaration */
  int g = 10;
 
  printf ("value of g = %d\n",  g);
 
  return 0;
}
When the above code is compiled and executed, it produces the following result:
value of g = 10

Formal Parameters

Function parameters, formal parameters, are treated as local variables with-in that function and they will take preference over the global variables. Following is an example:
#include <stdio.h>
 
/* global variable declaration */
int a = 20;
 
int main ()
{
  /* local variable declaration in main function */
  int a = 10;
  int b = 20;
  int c = 0;

  printf ("value of a in main() = %d\n",  a);
  c = sum( a, b);
  printf ("value of c in main() = %d\n",  c);

  return 0;
}

/* function to add two integers */
int sum(int a, int b)
{
    printf ("value of a in sum() = %d\n",  a);
    printf ("value of b in sum() = %d\n",  b);

    return a + b;
}
When the above code is compiled and executed, it produces the following result:
value of a in main() = 10
value of a in sum() = 10
value of b in sum() = 20
value of c in main() = 30

Initializing Local and Global Variables

When a local variable is defined, it is not initialized by the system, you must initialize it yourself. Global variables are initialized automatically by the system when you define them as follows:
Data TypeInitial Default Value
int0
char'\0'
float0
double0
pointerNULL
It is a good programming practice to initialize variables properly otherwise, your program may produce unexpected results because uninitialized variables will take some garbage value already available at its memory location.

C - Arrays


Advertisements


C programming language provides a data structure called the array, which can store a fixed-size sequential collection of elements of the same type. An array is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type.
Instead of declaring individual variables, such as number0, number1, ..., and number99, you declare one array variable such as numbers and use numbers[0], numbers[1], and ..., numbers[99] to represent individual variables. A specific element in an array is accessed by an index.
All arrays consist of contiguous memory locations. The lowest address corresponds to the first element and the highest address to the last element.
Arrays in C

Declaring Arrays

To declare an array in C, a programmer specifies the type of the elements and the number of elements required by an array as follows:
type arrayName [ arraySize ];
This is called a single-dimensional array. The arraySize must be an integer constant greater than zero and type can be any valid C data type. For example, to declare a 10-element array called balance of type double, use this statement:
double balance[10];
Now balance is avariable array which is sufficient to hold upto 10 double numbers.

Initializing Arrays

You can initialize array in C either one by one or using a single statement as follows:
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
The number of values between braces { } can not be larger than the number of elements that we declare for the array between square brackets [ ].
If you omit the size of the array, an array just big enough to hold the initialization is created. Therefore, if you write:
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
You will create exactly the same array as you did in the previous example. Following is an example to assign a single element of the array:
balance[4] = 50.0;
The above statement assigns element number 5th in the array with a value of 50.0. All arrays have 0 as the index of their first element which is also called base index and last index of an array will be total size of the array minus 1. Following is the pictorial representation of the same array we discussed above:
Array Presentation

Accessing Array Elements

An element is accessed by indexing the array name. This is done by placing the index of the element within square brackets after the name of the array. For example:
double salary = balance[9];
The above statement will take 10th element from the array and assign the value to salary variable. Following is an example which will use all the above mentioned three concepts viz. declaration, assignment and accessing arrays:
#include <stdio.h>
 
int main ()
{
   int n[ 10 ]; /* n is an array of 10 integers */
   int i,j;
 
   /* initialize elements of array n to 0 */         
   for ( i = 0; i < 10; i++ )
   {
      n[ i ] = i + 100; /* set element at location i to i + 100 */
   }
   
   /* output each array element's value */
   for (j = 0; j < 10; j++ )
   {
      printf("Element[%d] = %d\n", j, n[j] );
   }
 
   return 0;
}
When the above code is compiled and executed, it produces the following result:
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

C Arrays in Detail

Arrays are important to C and should need lots of more details. There are following few important concepts related to array which should be clear to a C programmer:
ConceptDescription
C supports multidimensional arrays. The simplest form of the multidimensional array is the two-dimensional array.
You can pass to the function a pointer to an array by specifying the array's name without an index.
C allows a function to return an array.
You can generate a pointer to the first element of an array by simply specifying the array name, without any index
Left to right