1. 程式人生 > >linux C學習第五天

linux C學習第五天

今天對變數和常量進行了區分和深入的瞭解

一、變數

1、什麼是變數

程式中用一個字元來表示一段記憶體,因此對於記憶體的操作就是對這個符號的操作。而變數就是這個符號和4位元組的空間。(變數是一個整體,符號和空間都是變數的一部分)

2、變數的組成

(1)記憶體空間:存放資料的地方
(2)變數名:用於方便對記憶體的操作
(3)變數地址(編號):區分變數的在記憶體中的位置,以開頭第一個位元組的地址為變數地址
(4)變數型別:決定這個空間能存放的資料型別

3、識別符號(變數名)的命名規則

(1)只能以數字、字母、下劃線組成
(2)不能以數字開頭
(3)不能使用C語言的關鍵子

4、變數的型別

變數是以變數佔用記憶體空間大小的不同進行劃分的,不同大小的數所需要的記憶體空間大小是不同的。
C語言是按變數佔據的記憶體大小和儲存型別不同,劃分了不同的變數型別。
型別區別有:
(1)帶符號的有:整型有:char、short、int、long、long long,浮點型有:float、double
(2)無符號數:整型unsigned char、unsigned short、unsigned int、unsigned long、unsigned long long,浮點型沒有無符號數
注:整型的規則 char <= short <= int <= long <= long long ,浮點型 float 有效為數為6—7位,double 有效位數為15—16。

5、字元與字串的區分

記憶體中存放的資料多是二進位制數,取出資料時會對二進位制數進行編碼(編碼:把存放的內容轉換成數字放入記憶體,用的時候從記憶體中取出數字再將數字轉換成對應的內容)。
(1)字元:字元使用 ‘ ’ 括起來的單個符號,類似‘a’是指字元a,‘!’是指字元!
(2)字串:字串是用 “ ” 括起來的內容,類似“a”並不是指字元a而是指字串a

6、變數的定義和使用

變數 說明 舉例
變數的定義 給變數分配名字和空間 int a
變數的初始化 給變數定義的同時給變數一個初值 int a=3;
變數的宣告 只給變數一個名字但並不分配空間

注:變數的初始化只在變數第一次被建立的時候使用

7、標準輸入、輸出函式

(1)標準輸入函式:printf(“列印的內容%列印型別”,要列印的變數的名字或者常量);
在這裡插入圖片描述
(2)標準輸出函式:scanf("%輸入的型別",寫入的變數的地址);
注意:scanf輸入需要的是變數的地址,用&取變數地址。
scanf是以空格或者回車作為一次讀取的結束

二、常量

1、常量指的就是字面量
2、常量的值是不允許改變的
3、整型對應不同的常量

開頭 對應進位制 舉例
無開頭 十進位制 12:指十進位制12
以0開頭 八進位制 012:是十進位制的10,八進位制的12
以0x開頭 十六進位制 0x12:是十進位制的18,16進位制的12
以L結尾 是長整型的 12L:是指長整型的12

4、浮點數不同的常量

開頭 對應型別 舉例
預設 double型 1.2:double型的1.2
結尾加f float型 1.2:float型的1.2

5、字元常量
字元常量有兩種:
一種是普通字元,即用單撇號括起來的一個字元,如’b’ ,‘y’,‘?’。字元常量在儲存在計算機的儲存單元中時,是以其程式碼(一般採用ASCII程式碼)儲存的。ASCII碼只定義了前128個。
在這裡插入圖片描述
另一種是轉義字元,即特殊字元常量。轉移字元是C語言中表示字元的一種特殊形式,其含義是將 \ 後面的字元轉換成另外的意義,例"是指“ ”。
6、#denfine
程式之中一般不會直接用數字、字元常量,會在檔案的開頭用#define 將數字、字元常量定義成一個詞(大寫,用於區分變數名)例如:#define PI 3.14,在下文中寫 PI 就是3.14.

三、cos函式和sin函式在0—360度內用“+”,“*”打印出來

#include <stdio.h>
#include <math.h>

main()
{
    double i;
    int x,y,n,m;
/*      
    for(y=0;y<=20;y++)
    {
        i=y*0.1;
        m=acos(1-i)*10;
        n=45*(i-1)+31;

        for(x=0;x<=62;x++)
        
            if(x==m && x==n)
            { 
                printf("+");
            }
            else if(x==n)
            {
                printf("+");
            }
            else if(x==m || x==62-m)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
            printf("\n");
*/                      
        


    for(y=0;y<=20;y++)
    {
        i=0.1*y;
        m=asin(1-i)*10;
        n=acos(1-i)*10;
        for(x=0;x<=62;x++)
        
        if(x==m &&x==n)
        {
            printf("+");
        }
        else if(x==n || x==62-n)
        {
            printf("*");
        }
        else if(x==m || x==31-m) 
        {
            printf("+");
        }
        else if(x==m || x==62+m)
        {
            printf("+");
        }
        else 
        {
            printf(" ");
        }
        printf("\n");
        
    }

    return 0;
}