<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mirsoli Mirzaahmad õğli</title>
    <description>The latest articles on DEV Community by Mirsoli Mirzaahmad õğli (@mirrr).</description>
    <link>https://dev.to/mirrr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F755931%2F99512e83-397a-4470-85f8-7f494f5b506e.jpeg</url>
      <title>DEV Community: Mirsoli Mirzaahmad õğli</title>
      <link>https://dev.to/mirrr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mirrr"/>
    <language>en</language>
    <item>
      <title>Nixos config for nvim</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 24 Mar 2025 15:05:27 +0000</pubDate>
      <link>https://dev.to/mirrr/nixos-config-for-nvim-3pm6</link>
      <guid>https://dev.to/mirrr/nixos-config-for-nvim-3pm6</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/mirrr" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F755931%2F99512e83-397a-4470-85f8-7f494f5b506e.jpeg" alt="mirrr"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/mirrr/how-to-turn-neovim-into-an-ide-like-code-editor-in-nixos-4npb" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to turn NEOVIM into an IDE-like code editor in NIXOS?&lt;/h2&gt;
      &lt;h3&gt;Mirsoli Mirzaahmad õğli ・ Mar 24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#vim&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#neovim&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#nix&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#nixos&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>vim</category>
      <category>neovim</category>
      <category>nix</category>
      <category>nixos</category>
    </item>
    <item>
      <title>How to turn NEOVIM into an IDE-like code editor in NIXOS?</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 24 Mar 2025 15:04:47 +0000</pubDate>
      <link>https://dev.to/mirrr/how-to-turn-neovim-into-an-ide-like-code-editor-in-nixos-4npb</link>
      <guid>https://dev.to/mirrr/how-to-turn-neovim-into-an-ide-like-code-editor-in-nixos-4npb</guid>
      <description>&lt;p&gt;Welcome to my optimized Laravel development setup featuring &lt;a href="https://neovim.io/" rel="noopener noreferrer"&gt;Nvim&lt;/a&gt; with &lt;a href="https://github.com/LazyVim" rel="noopener noreferrer"&gt;LazyVim&lt;/a&gt; integration. This configuration is tailored to enhance productivity and streamline the development workflow for Laravel projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Features:​
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Efficient Code Editing: Leverage the power of Nvim’s fast, extensible code editing with LazyVim’s user-friendly enhancements.&lt;/li&gt;
&lt;li&gt;Laravel-Specific Tools: Pre-configured tools and plugins to support Laravel development, including syntax highlighting, code completion, and route navigation.&lt;/li&gt;
&lt;li&gt;Enhanced Productivity: Enjoy a suite of features aimed at boosting efficiency, such as automatic code formatting, linting, and integrated terminal support.&lt;/li&gt;
&lt;li&gt;Customizable: Easily adapt the setup to your preferences with a modular and customizable configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Setup​:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Clone this repository:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/codahiri/dotfiles.git ~/.config/nvim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Remove the .git folder, so you can add it to your own repo later
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; ./nvim/.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create a folder called &lt;code&gt;neovim&lt;/code&gt; and copy the cloned &lt;code&gt;nvim&lt;/code&gt; folder into it. Then create a file called &lt;code&gt;deafult.nix&lt;/code&gt; and add the following code inside it:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nix"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;config&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nv"&gt;lib&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nv"&gt;pkgs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;}:&lt;/span&gt;
&lt;span class="c"&gt;###############################################################################&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#  NvChad's configuration and all its dependencies(lsp, formatter, etc.)&lt;/span&gt;
&lt;span class="c"&gt;#&lt;/span&gt;
&lt;span class="c"&gt;#e#############################################################################&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt;
  &lt;span class="nv"&gt;shellAliases&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"nvim"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;vdiff&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"nvim -d"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="c"&gt;# the path to nvim directory&lt;/span&gt;
  &lt;span class="c"&gt;# to make this symlink work, we need to git clone this repo to your home directory.&lt;/span&gt;
  &lt;span class="nv"&gt;configPath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;home&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;homeDirectory&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/nixos-config/modules/home/neovim/nvim"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;in&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;xdg&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;configFile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="s2"&gt;"nvim"&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;source&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;mkOutOfStoreSymlink&lt;/span&gt; &lt;span class="nv"&gt;configPath&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nv"&gt;home&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;shellAliases&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;shellAliases&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;programs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;nushell&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;shellAliases&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;shellAliases&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nv"&gt;programs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;neovim&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nv"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;package&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;pkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;neovim-unwrapped&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

      &lt;span class="c"&gt;# defaultEditor = true; # set EDITOR at system-wide level&lt;/span&gt;
      &lt;span class="nv"&gt;viAlias&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;vimAlias&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

      &lt;span class="c"&gt;# These environment variables are needed to build and run binaries&lt;/span&gt;
      &lt;span class="c"&gt;# with external package managers like mason.nvim.&lt;/span&gt;
      &lt;span class="c"&gt;#&lt;/span&gt;
      &lt;span class="c"&gt;# LD_LIBRARY_PATH is also needed to run the non-FHS binaries downloaded by mason.nvim.&lt;/span&gt;
      &lt;span class="c"&gt;# it will be set by nix-ld, so we do not need to set it here again.&lt;/span&gt;
      &lt;span class="nv"&gt;extraWrapperArgs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kn"&gt;with&lt;/span&gt; &lt;span class="nv"&gt;pkgs&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="c"&gt;# LIBRARY_PATH is used by gcc before compilation to search directories&lt;/span&gt;
        &lt;span class="c"&gt;# containing static and shared libraries that need to be linked to your program.&lt;/span&gt;
        &lt;span class="s2"&gt;"--suffix"&lt;/span&gt;
        &lt;span class="s2"&gt;"LIBRARY_PATH"&lt;/span&gt;
        &lt;span class="s2"&gt;":"&lt;/span&gt;
        &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;makeLibraryPath&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="nv"&gt;stdenv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;cc&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;cc&lt;/span&gt;
          &lt;span class="nv"&gt;zlib&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

        &lt;span class="c"&gt;# PKG_CONFIG_PATH is used by pkg-config before compilation to search directories&lt;/span&gt;
        &lt;span class="c"&gt;# containing .pc files that describe the libraries that need to be linked to your program.&lt;/span&gt;
        &lt;span class="s2"&gt;"--suffix"&lt;/span&gt;
        &lt;span class="s2"&gt;"PKG_CONFIG_PATH"&lt;/span&gt;
        &lt;span class="s2"&gt;":"&lt;/span&gt;
        &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;makeSearchPathOutput&lt;/span&gt; &lt;span class="s2"&gt;"dev"&lt;/span&gt; &lt;span class="s2"&gt;"lib/pkgconfig"&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="nv"&gt;stdenv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;cc&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;cc&lt;/span&gt;
          &lt;span class="nv"&gt;zlib&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
      &lt;span class="p"&gt;];&lt;/span&gt;

      &lt;span class="c"&gt;# Currently we use lazy.nvim as neovim's package manager, so comment this one.&lt;/span&gt;
      &lt;span class="c"&gt;#&lt;/span&gt;
      &lt;span class="c"&gt;# NOTE: These plugins will not be used by astronvim by default!&lt;/span&gt;
      &lt;span class="c"&gt;# We should install packages that will compile locally or download FHS binaries via Nix!&lt;/span&gt;
      &lt;span class="c"&gt;# and use lazy.nvim's `dir` option to specify the package directory in nix store.&lt;/span&gt;
      &lt;span class="c"&gt;# so that these plugins can work on NixOS.&lt;/span&gt;
      &lt;span class="c"&gt;#&lt;/span&gt;
      &lt;span class="c"&gt;# related project:&lt;/span&gt;
      &lt;span class="c"&gt;#  https://github.com/b-src/lazy-nix-helper.nvim&lt;/span&gt;
      &lt;span class="c"&gt;# plugins = with pkgs.vimPlugins; [&lt;/span&gt;
      &lt;span class="c"&gt;#   # search all the plugins using https://search.nixos.org/packages&lt;/span&gt;
      &lt;span class="c"&gt;#   telescope-fzf-native-nvim&lt;/span&gt;

      &lt;span class="c"&gt;#   nvim-treesitter.withAllGrammars&lt;/span&gt;
      &lt;span class="c"&gt;# ];&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt; Build NixOS and Start Neovim!
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# build nixos&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;nixos-rebuild switch &lt;span class="nt"&gt;--flake&lt;/span&gt; ./#yourhostname

&lt;span class="c"&gt;# start nvim&lt;/span&gt;
nvim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;To get started, clone the repository and follow the installation instructions in the &lt;a href="https://github.com/mirrrrrrrrrrrr/nixos-config/blob/master/modules/home/neovim/nvim/README.md" rel="noopener noreferrer"&gt;README&lt;/a&gt;. This repository includes all necessary configurations, plugins, and dependencies to get your Laravel development environment up and running quickly.&lt;/p&gt;

</description>
      <category>vim</category>
      <category>neovim</category>
      <category>nix</category>
      <category>nixos</category>
    </item>
    <item>
      <title>First dark/light &amp; blog website</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 08 Aug 2022 20:30:11 +0000</pubDate>
      <link>https://dev.to/mirrr/first-darklight-blog-website-1eia</link>
      <guid>https://dev.to/mirrr/first-darklight-blog-website-1eia</guid>
      <description>&lt;p&gt;I created my first dark/light &amp;amp; blog website. Of course, this is a very simple structure.&lt;/p&gt;

&lt;p&gt;Link &lt;a href="http://test-next-ilosrim.vercel.app/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lesson 08 | Structures</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 11 Apr 2022 18:29:52 +0000</pubDate>
      <link>https://dev.to/mirrr/lesson-08-structures-5ae8</link>
      <guid>https://dev.to/mirrr/lesson-08-structures-5ae8</guid>
      <description>&lt;h2&gt;
  
  
  Defining Structures With &lt;code&gt;struct&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Structures are defined with the struct keyword followed by the structure name. Inside the braces, member variables are declared but not initialized. The given code block defines a structure named &lt;code&gt;Person&lt;/code&gt; with declared member variables &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;age&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// `struct` keyword and structure name&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// uninitialized member variables&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Initializing Structures With &lt;code&gt;struct&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Structure data types are initialized using the struct keyword with the defined structure type followed by the name of the variable. The given code block shows two ways to initialize &lt;code&gt;Person&lt;/code&gt; type structures named &lt;code&gt;person1&lt;/code&gt; and &lt;code&gt;person2&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// `Person` structure declaration&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// designated initialization with member variable names&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Cosmo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// implicit initialization following order of member variables&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"George"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Custom Data Types With Structures
&lt;/h2&gt;

&lt;p&gt;Structures allow the definition of custom data types that are used to represent complex data. Structure customization provides the flexibility to accurately model real-world data, giving you the ability to access and modify the data from a single defined variable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grouping Data Types With Structures
&lt;/h2&gt;

&lt;p&gt;Structures can group different data types together into a single, user-defined type. This differs from arrays which can only group the same data type together into a single type. The given code block defines a structure named &lt;code&gt;Person&lt;/code&gt; with different basic data types as member variables.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// `Person` structure definition&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// member variables that vary in type&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;middleInitial&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Accessing Member Variables With Dot Notation
&lt;/h2&gt;

&lt;p&gt;Initialized structure member variables can be accessed with the dot (&lt;code&gt;.&lt;/code&gt;) operator. The given code block initializes a &lt;code&gt;Person&lt;/code&gt; type named &lt;code&gt;person1&lt;/code&gt; and accesses the name &lt;code&gt;member&lt;/code&gt; variable within a &lt;code&gt;printf()&lt;/code&gt; statement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// `Person` structure declaration&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// member variables&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;middleInitial&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// initialization of `person1`&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"George"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;middleInitial&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"C"&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// accessing `name` in `person1`&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"My name is %s"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;person1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// OUTPUT: My name is George&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Structure Member Variables
&lt;/h2&gt;

&lt;p&gt;The variables defined within a structure are known as member variables. The given code block defined a structure named &lt;code&gt;Person&lt;/code&gt; with member variables &lt;code&gt;name&lt;/code&gt; of type &lt;code&gt;char*&lt;/code&gt;, and &lt;code&gt;age&lt;/code&gt; of type &lt;code&gt;int&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Person structure declaration&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// member variables&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Structure Type Pointers
&lt;/h2&gt;

&lt;p&gt;Pointers to a structure can be defined using the &lt;code&gt;struct&lt;/code&gt; keyword, the structure type, and the pointer (&lt;code&gt;*&lt;/code&gt;) symbol. The memory address of an initialized structure can be accessed using the symbol (&lt;code&gt;&amp;amp;&lt;/code&gt;). The given code block defines a pointer to a &lt;code&gt;Person&lt;/code&gt; data type named &lt;code&gt;person1&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Person structure declaration&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// member variables&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// person1 initialization&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"George"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// person1Pointer initializated to the memory address of person1&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;person1Pointer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;person1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Accessing Member Variables With Arrow Notiation
&lt;/h2&gt;

&lt;p&gt;Member variables of a structure can be accessed using a pointer with arrow (&lt;code&gt;-&amp;gt;&lt;/code&gt;) notation. The given code block initializes a &lt;code&gt;Person&lt;/code&gt; pointer type named person1Pointer. Inside the &lt;code&gt;printf()&lt;/code&gt; statement, the &lt;code&gt;name&lt;/code&gt; member variable of &lt;code&gt;person1&lt;/code&gt; is accessed using arrow (&lt;code&gt;-&amp;gt;&lt;/code&gt;) notation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// `Person` structure declaration&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// member variables&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// `person1` intialization&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Jerry"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;29&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// `person1Pointer` intialization to memory address to `person1`&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;person1Pointer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;person1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// accessing `name` through `person1Pointer`&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"My name is %s"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;person1Pointer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// OUTPUT: My name is Jerry&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Passing Structures To Functions
&lt;/h2&gt;

&lt;p&gt;Structures can be used as parameters of functions by using the &lt;code&gt;struct&lt;/code&gt; keyword followed by the structure name in the function definition. The given code block defines a function signature named &lt;code&gt;myFunc()&lt;/code&gt; with a &lt;code&gt;Person&lt;/code&gt; parameter named &lt;code&gt;person1&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Person structure declaration&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// member variables&lt;/span&gt;
  &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;// declaring Person type parameter&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;myFunc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Passing Structure Pointers To Functions
&lt;/h2&gt;

&lt;p&gt;Structure pointers can be paramters of functions by using the &lt;code&gt;struct&lt;/code&gt; keyword, the structure name, and the pointer symbol (&lt;code&gt;*&lt;/code&gt;) in the function definition. The given code block defines a function signature named &lt;code&gt;myFunc()&lt;/code&gt; with a &lt;code&gt;Person&lt;/code&gt; pointer parameter named &lt;code&gt;person1 pointer&lt;/code&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lesson 07 | Functions</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 11 Apr 2022 18:19:18 +0000</pubDate>
      <link>https://dev.to/mirrr/lesson-07-functions-82j</link>
      <guid>https://dev.to/mirrr/lesson-07-functions-82j</guid>
      <description>&lt;h2&gt;
  
  
  Functions in C
&lt;/h2&gt;

&lt;p&gt;A function is a block of reusable logic that may have a defined set of input and output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built-In Function in C
&lt;/h2&gt;

&lt;p&gt;The C programming language comes with built-in standard library functions, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;printf()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rand()&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// printf is a standard library function&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello built-in functions!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Calling Functions
&lt;/h2&gt;

&lt;p&gt;In C, a function is called by stating the function name followed by parentheses. One or more argument values can be placed in the parentheses if the function requires any input values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// The value of myNumber is retrieved by&lt;/span&gt;
  &lt;span class="c1"&gt;// calling the function incrementBy() with&lt;/span&gt;
  &lt;span class="c1"&gt;// the arguments 5 and 2&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;myNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Storing A Return Value
&lt;/h2&gt;

&lt;p&gt;A function &lt;code&gt;return&lt;/code&gt; value, or function output, can be stored in a variable to be used for future calculations.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// myNumber will hold the return value&lt;/span&gt;
  &lt;span class="c1"&gt;// of increment by, which is 7&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;myNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Function Signature
&lt;/h2&gt;

&lt;p&gt;A user-defined function is defined using a function signature. This signature specifies the return type and the function name followed by parameters inside parentheses.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// A function signature includes the&lt;/span&gt;
&lt;span class="c1"&gt;// return type, function name, and&lt;/span&gt;
&lt;span class="c1"&gt;// parameter(s) in the parentheses&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Return Type void
&lt;/h2&gt;

&lt;p&gt;A function that returns no value must use the keyword &lt;code&gt;void&lt;/code&gt; as the return type within the function signature.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// void is used since the function&lt;/span&gt;
&lt;span class="c1"&gt;// printNumnber does not return any value&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;printNumber&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Your number is %d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Function Return Value
&lt;/h2&gt;

&lt;p&gt;A user-defined function can &lt;code&gt;return&lt;/code&gt; a value with the return keyword followed by the value to be returned. The type of the returned value must match the return type specified in the function signature.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// the return keyword returns the&lt;/span&gt;
&lt;span class="c1"&gt;// value following the keyword&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;getOne&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Function Parameters
&lt;/h2&gt;

&lt;p&gt;In C, a user-defined function can specify input using parameters. Parameters are comma-separated variable definitions within the function signature parentheses.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// number1 and number2 are paramters&lt;/span&gt;
&lt;span class="c1"&gt;// for the incrementBy function&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;number1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;number2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Function Protypes
&lt;/h2&gt;

&lt;p&gt;A function prototype specifies an interface with the required return type and parameter types to help the compiler ensure a function is called properly. A function prototype also helps separate the function declaration from its implementation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// function prototpe&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// function implmentation&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Lesson 06 | Pointers and Memory</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 11 Apr 2022 18:13:34 +0000</pubDate>
      <link>https://dev.to/mirrr/lesson-06-pointers-and-memory-4pbn</link>
      <guid>https://dev.to/mirrr/lesson-06-pointers-and-memory-4pbn</guid>
      <description>&lt;h2&gt;
  
  
  What is a pointer?
&lt;/h2&gt;

&lt;p&gt;A pointer is a variable that stores the hexadecimal address of the variable it is pointing to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Declaring Pointers
&lt;/h2&gt;

&lt;p&gt;A pointer variable is declared like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;pntr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;pntr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Accessing Memory Address
&lt;/h2&gt;

&lt;p&gt;A memory address of a variable is obtained using the reference operator (&lt;code&gt;&amp;amp;&lt;/code&gt;). Example: &lt;code&gt;&amp;amp;var&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dereferencing Pointers
&lt;/h2&gt;

&lt;p&gt;A pointer is dereferenced using the dereference operator (&lt;code&gt;*&lt;/code&gt;). Example: &lt;code&gt;*pntr&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Incrementing and Decrementing Pointers
&lt;/h2&gt;

&lt;p&gt;Pointers can be incremented and decremented using the &lt;code&gt;+&lt;/code&gt; and &lt;code&gt;-&lt;/code&gt; arithmetic operators.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessing Arrays
&lt;/h2&gt;

&lt;p&gt;Arrays can be accessed by using a pointer to the first element and incrementing and decrementing as necessary.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lesson 05 |Arrays and Strings</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 11 Apr 2022 18:10:20 +0000</pubDate>
      <link>https://dev.to/mirrr/lesson-05-arrays-and-strings-ij0</link>
      <guid>https://dev.to/mirrr/lesson-05-arrays-and-strings-ij0</guid>
      <description>&lt;h2&gt;
  
  
  What is an array?
&lt;/h2&gt;

&lt;p&gt;An array is used to store many elements of the same type in contiguous blocks of memory&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Uninitialized Arrays
&lt;/h2&gt;

&lt;p&gt;An uninitialized array is created as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;array_size&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creating an Initialized Array
&lt;/h2&gt;

&lt;p&gt;An initialized array is created as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;element1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;element2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;element3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Accessing Array Elements
&lt;/h2&gt;

&lt;p&gt;You can access the array element at index idx as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  First and Last Array Elements
&lt;/h2&gt;

&lt;p&gt;The first and last elements in the array can be found at the following indices:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;firstElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="n"&gt;lastElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;arraySize&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  sizeof()
&lt;/h2&gt;

&lt;p&gt;Array size can be found using the sizeof() function&lt;/p&gt;

&lt;h2&gt;
  
  
  Iterating Through Arrays
&lt;/h2&gt;

&lt;p&gt;Arrays can be iterated through using while loops or for loops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Invalid Array Access
&lt;/h2&gt;

&lt;p&gt;Attempting to access or modify an element at an index greater than the length of the array will cause the program to behave unpredictably.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Multidimensional Arrays
&lt;/h2&gt;

&lt;p&gt;Initialized and uninitialized multidimensional arrays are created as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;initializedMultArray&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[][&lt;/span&gt;&lt;span class="n"&gt;dim2Size&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dimNSize&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{{&lt;/span&gt;&lt;span class="n"&gt;element1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;element2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;},{&lt;/span&gt;&lt;span class="n"&gt;element1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;element2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="n"&gt;uninitializedMultArray&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="n"&gt;arr&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dim1Size&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;dim2Size&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dimNSize&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  String Length
&lt;/h2&gt;

&lt;p&gt;Arrays are static, therefore the length of a string cannot be modified.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessing Characters in a String
&lt;/h2&gt;

&lt;p&gt;Characters in a string can be accessed and modified using indices, the same technique used with arrays.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Strings
&lt;/h2&gt;

&lt;p&gt;Strings can be created by initializing an array of &lt;code&gt;char&lt;/code&gt;s.&lt;/p&gt;

&lt;h2&gt;
  
  
  Null Character
&lt;/h2&gt;

&lt;p&gt;All strings terminate with a null character (&lt;code&gt;'\0'&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  strlen()
&lt;/h2&gt;

&lt;p&gt;You can find the length of a string using the strlen() function.&lt;/p&gt;

&lt;h2&gt;
  
  
  strcat()
&lt;/h2&gt;

&lt;p&gt;Two strings can be concatenated using the strcat() function.&lt;/p&gt;

&lt;h2&gt;
  
  
  strcpy()
&lt;/h2&gt;

&lt;p&gt;A string can be copied into an empty char array (empty string) using the strcpy() function.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lasson 04 | Loops and errors</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Tue, 29 Mar 2022 15:40:55 +0000</pubDate>
      <link>https://dev.to/mirrr/lasson-04-loops-and-errors-4f5p</link>
      <guid>https://dev.to/mirrr/lasson-04-loops-and-errors-4f5p</guid>
      <description>&lt;h2&gt;
  
  
  Types of Loops
&lt;/h2&gt;

&lt;p&gt;Loops can be written as &lt;code&gt;while&lt;/code&gt; loops, &lt;code&gt;do-while&lt;/code&gt; loops, and &lt;code&gt;for&lt;/code&gt; loops.&lt;/p&gt;

&lt;h2&gt;
  
  
  while Loops
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;while&lt;/code&gt; loops iterate until a condition is met.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  do-while Loops
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;do-while&lt;/code&gt; loops are &lt;code&gt;while&lt;/code&gt; loops that initially execute the body once before checking the condition.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"not true!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  for Loops
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;for&lt;/code&gt; loops complete a set number of iterations before meeting a condition.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Loop Keywords
&lt;/h2&gt;

&lt;p&gt;All loops can utilize keywords like &lt;code&gt;continue&lt;/code&gt; and &lt;code&gt;break&lt;/code&gt;. &lt;code&gt;continue&lt;/code&gt; restarts the loop and &lt;code&gt;break&lt;/code&gt; breaks out of (or ends) the loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rewriting Loops
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;for&lt;/code&gt; loop can always be re-written as a &lt;code&gt;while&lt;/code&gt; loop; most &lt;code&gt;while&lt;/code&gt; loops can be re-written as a &lt;code&gt;for&lt;/code&gt; loop.&lt;/p&gt;

</description>
      <category>whileloop</category>
      <category>dowhileloop</category>
      <category>forloop</category>
      <category>loops</category>
    </item>
    <item>
      <title>Lesson 03 | Conditionals</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Sat, 26 Mar 2022 06:58:33 +0000</pubDate>
      <link>https://dev.to/mirrr/lesson-03-conditionals-1cd6</link>
      <guid>https://dev.to/mirrr/lesson-03-conditionals-1cd6</guid>
      <description>&lt;h2&gt;
  
  
  Types of Conditionals
&lt;/h2&gt;

&lt;p&gt;A conditional in C can be written using &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;else-if&lt;/code&gt;, &lt;code&gt;else&lt;/code&gt;, &lt;code&gt;ternary operators&lt;/code&gt;, and &lt;code&gt;switch&lt;/code&gt; statements.&lt;/p&gt;

&lt;h2&gt;
  
  
  if Statements
&lt;/h2&gt;

&lt;p&gt;An &lt;code&gt;if&lt;/code&gt; statement tests an expression and executes code based on its truth.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x is 3!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  else-if Statements
&lt;/h2&gt;

&lt;p&gt;An &lt;code&gt;else-if&lt;/code&gt; statement tests an expression and must come after an existing &lt;code&gt;if&lt;/code&gt; or &lt;code&gt;else-if&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x is greater than 3"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="nf"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x is less than 3"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  else Statements
&lt;/h2&gt;

&lt;p&gt;An &lt;code&gt;else&lt;/code&gt; statement is accessed when all preceding &lt;code&gt;if&lt;/code&gt; and/or &lt;code&gt;else-if&lt;/code&gt; statements return false.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x is greater than 3"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="nf"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x is less than 3"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x equals 3"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Dangling else Statement
&lt;/h2&gt;

&lt;p&gt;A dangling &lt;code&gt;else&lt;/code&gt; statement results when it’s ambiguous which conditional the &lt;code&gt;else&lt;/code&gt; statement is attached to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ternary Operators
&lt;/h2&gt;

&lt;p&gt;A ternary operator is a condensed &lt;code&gt;if-else&lt;/code&gt; statement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;min&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// This is the same as the if-else below&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;min&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;min&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  switch Statements
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;switch&lt;/code&gt; statement is a condensed series of cascading &lt;code&gt;else&lt;/code&gt; statements. It tests a value and compares it against multiple cases.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;grade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Freshman&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Sophomore&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Junior&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Senior&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;default:&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Invalid&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Operators and Conditionals
&lt;/h2&gt;

&lt;p&gt;A conditional in C can use relational operators such as &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;, &lt;code&gt;||&lt;/code&gt;, and &lt;code&gt;!&lt;/code&gt; to compare values and test multiple expressions.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lesson 02 | Operators</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Thu, 17 Mar 2022 16:45:01 +0000</pubDate>
      <link>https://dev.to/mirrr/lesson-02-1kb</link>
      <guid>https://dev.to/mirrr/lesson-02-1kb</guid>
      <description>&lt;h2&gt;
  
  
  Mathmatical Symbols in C
&lt;/h2&gt;

&lt;p&gt;C is able to perform basic mathematical operations on variables and values using the following symbols:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Addition: &lt;code&gt;+&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Subtraction: &lt;code&gt;-&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Division: &lt;code&gt;/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Multiplication: &lt;code&gt;*&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Incrementing: &lt;code&gt;++&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Decrementing: &lt;code&gt;--&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Modulo: &lt;code&gt;%&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Assignment Operations in C
&lt;/h2&gt;

&lt;p&gt;C can assign values to variables and perform basic mathematical operations using shorthand operators:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assignment: &lt;code&gt;=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Addition then assignment: &lt;code&gt;+=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Subtraction then assignment: &lt;code&gt;-=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Multiplication then assignment: &lt;code&gt;*=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Division then assignment: &lt;code&gt;/=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Modulo then assignment: &lt;code&gt;%=&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comparing values in C
&lt;/h2&gt;

&lt;p&gt;C can compare two values and/or variables against each other to return true or false. The operators are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do both sides have the same value? &lt;code&gt;==&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Do the two sides have different values? &lt;code&gt;!=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Is the left side a lower value than the right side? &lt;code&gt;&amp;lt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Is the left side a lower or equal value to the right side? &lt;code&gt;&amp;lt;=&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Is the left side a greater value than the right side? &lt;code&gt;&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Is the left side a greater or equal value to the right side? &lt;code&gt;&amp;gt;=&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Logical Operators in C
&lt;/h2&gt;

&lt;p&gt;C can perform logical operations using the following operators:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;and: &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; (Are both sides true?)&lt;/li&gt;
&lt;li&gt;or: &lt;code&gt;||&lt;/code&gt; (Is at least one side true?)&lt;/li&gt;
&lt;li&gt;not: &lt;code&gt;!&lt;/code&gt; (True becomes false and false becomes true.)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>methsymbol</category>
      <category>assignmentoperators</category>
      <category>comparingvalue</category>
      <category>logicaloperators</category>
    </item>
    <item>
      <title>Lesson 01 | Variables</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Wed, 16 Mar 2022 16:38:16 +0000</pubDate>
      <link>https://dev.to/mirrr/lesson-01-19df</link>
      <guid>https://dev.to/mirrr/lesson-01-19df</guid>
      <description>&lt;h2&gt;
  
  
  C Variable Names
&lt;/h2&gt;

&lt;p&gt;In C variable names must follow specific rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Names can only be composed of upper and lower case letters, numbers, and underscores.&lt;/li&gt;
&lt;li&gt;The first character must be a letter (upper or lower case).&lt;/li&gt;
&lt;li&gt;No keywords are allowed as the full name (&lt;code&gt;int&lt;/code&gt; is not allowed but &lt;code&gt;int_count&lt;/code&gt; would work).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Types in C
&lt;/h2&gt;

&lt;p&gt;The main data types in C are: &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt;, &lt;code&gt;double&lt;/code&gt;, and &lt;code&gt;char&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Variables in C
&lt;/h2&gt;

&lt;p&gt;Variables in C can be initialized with values at their declaration or have their values set later in the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variable Casting in C
&lt;/h2&gt;

&lt;p&gt;In C a variable can be cast explicitly or implicitly from one data type to another. They can then be used directly or stored in another variable.&lt;/p&gt;

</description>
      <category>variables</category>
      <category>datatype</category>
      <category>settingvariable</category>
      <category>variablecasting</category>
    </item>
    <item>
      <title>Hello Clang | 00</title>
      <dc:creator>Mirsoli Mirzaahmad õğli</dc:creator>
      <pubDate>Mon, 14 Mar 2022 16:18:04 +0000</pubDate>
      <link>https://dev.to/mirrr/hello-clang-00-1e4a</link>
      <guid>https://dev.to/mirrr/hello-clang-00-1e4a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlpqzd20c97v34gb5nai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlpqzd20c97v34gb5nai.png" alt="Hello C-lang pic." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Syntax in C
&lt;/h2&gt;

&lt;p&gt;The rules that dictate the correct format of code for a specific programming language are known as syntax.&lt;/p&gt;

&lt;p&gt;Examples of syntax in C are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All statements must end with a semicolon,&lt;code&gt;;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Keywords and other code elements are case-sensitive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When compiling C code, an error will occur when the syntax of the code is incorrect.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Statements must end in a semicolon (;)&lt;/span&gt;
&lt;span class="c1"&gt;// correct&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// error&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Code elements are case sensitive&lt;/span&gt;
&lt;span class="c1"&gt;// correct&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// error&lt;/span&gt;
&lt;span class="n"&gt;PRINTF&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Escape Sequences
&lt;/h2&gt;

&lt;p&gt;In C, an escape sequence is a non-visual character used within a string.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;\n&lt;/code&gt; is an escape sequence that adds a newline to a string. &lt;code&gt;\t&lt;/code&gt; is an escape sequence that adds a tab of spaces to a string.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// \n acts as a newline in a string&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Outputs: Hello&lt;/span&gt;
                         &lt;span class="c1"&gt;//          World!&lt;/span&gt;

&lt;span class="c1"&gt;// \t acts as a tab in a string&lt;/span&gt;
&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Outputs: Hello    World!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Comments in C
&lt;/h2&gt;

&lt;p&gt;In C, comments are text within code that will be ignored by the compiler. They are used to document code.&lt;/p&gt;

&lt;p&gt;Line comments begin with a double forward slash, &lt;code&gt;//&lt;/code&gt;. All text after &lt;code&gt;//&lt;/code&gt; will be part of the comment until a new line is reached.&lt;/p&gt;

&lt;p&gt;Block comments begin with a forward slash and asterisk, &lt;code&gt;/*&lt;/code&gt; and end with an asterisk and forward slash, &lt;code&gt;*/&lt;/code&gt;. Block comments can span multiple lines as new lines are part of the comment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Comments&lt;/span&gt;

&lt;span class="cm"&gt;/* This review content is
about comments and how they
can be used to document code */&lt;/span&gt;

&lt;span class="c1"&gt;// This is a line comment&lt;/span&gt;

&lt;span class="cm"&gt;/* This is a
block comment */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Compiling C Code with gcc
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;gcc&lt;/code&gt; is an application used to compile C programs into an executable that can run on the target computer. &lt;code&gt;gcc&lt;/code&gt; stands for GNU Compiler Collection.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;gcc&lt;/code&gt; compiles C code using the code file as an unflagged command-line argument. The output executable file will be called &lt;code&gt;a.out&lt;/code&gt;. The &lt;code&gt;-o&lt;/code&gt; flag followed by some text can be used to designate the name of the output executable file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;gcc&lt;/span&gt; &lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;
&lt;span class="n"&gt;gcc&lt;/span&gt; &lt;span class="n"&gt;script&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="n"&gt;myProgram&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;freeCodeCamp data was used&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
  </channel>
</rss>
