c課堂筆記 day-1

c語言之父:丹尼斯.里奇

c語言的優缺點:看書查找

1.c的引入:

gcc編譯的格式:gcc hello.c -o hello -o是目標的意思object;

hello world程序的解析:

< #>:預處理命令 include:頭文件的包含 <>:把括號里的內容引入到源文件中
<stdio.h>:標準輸入輸出頭文件,是計算機自帶的庫,可以直接使用
< main>:函數名,main()是主函數,c程序源文件有且只能有一個main()函數!!!c程序的入口,即所有的c程序都是從
main函數開始執行;
int argc:參數的個數; char *argv[]:記錄參數
printf():是庫函數,包含在<stdio.h>中;
return 0:返回,或者函數結束;
注:以上內容基本決定了程序的框架;

c的數據類型:

基本數據類型:
int:基本整型
short int:短整型
long int:長整型
unsigned :無符號
signed:有符號
char 字符型 getchar 只能得到一個字符
float 單浮點類型:小數點后6位
double 雙浮點類型: 小數點后15位
numf e/E n :e為10的n次方
例:12.2E3<=====>12.2*10^3
enum 枚舉類型
構造數據類型:
數組類型,結構體(struct),聯合體(union)
指針類型:
空類型: void

2.變量的定義:

    data:數據
    type:類型
    value:值

DataType Name1,Name2,......,Numen;
可以定義多個變量,中間用逗號隔開,結尾用分號結束!!
DataType Name; 一行定義一個變量最好
DataType Name1;
建議一行定義一個變量并初始化

3.標識符:

包括變量名,函數名,及其它標號等;
(1)標識符的命名要求
字母(A~Z,a~z),下劃線(_),數字組成;
且規定:第一個字符不能為數字;
(2)命名規則:
可讀性要高,做到“見名知義”
駝峰命名法;
盡量不要用漢語拼音!!!

4.格式輸入\輸出:scanf()\printf()

printf("占位符",參數):按一定格式輸出,一一對應!!
也可以直接輸出printf("====")
%m.nf:m代表總位數(%5.3f=3.142 包含小數點加起來共五位數,小數點后面三位),n小數部分保留幾位
%-m.n:左對齊! %m.n:右對齊! 正負決定左右對齊;
scanf("占位符",參數): 按一定格式輸入,一一對應!!
&(取地址符):取相應地址

#######include<stdio.h>
int main()
{
float numf=1.234;

//按一定格式輸出
printf("numf=%f\n",numf);
//輸入numf的值,&numf為取地址符,將輸入的 數據保存
//到numf對應的內存空間中!
scanf("%f",&numf);
printf("numf=%5.3f",numf);

}

\

#######include<stdio.h>
int main()
{
int numt=123;
float numf=1.23;
printf("input two num:\n");
//printf給的什么格式scanf就按一定格式輸入
scanf("%d,%f",&numt,&numf);
printf("numt=%d\tnumf=%f\n",numt,numf);
//\t 制表符;
return 0;
}

 占位符:
           printf         scanf
 int            %d         %d              
 char           %c         %c
 long           %ld        %d
 float          %f         %f
 double         %lf        %f
 字符串         %s

5.常量

數字常量:123 1 567 -234
字符常量:'d' '$' '?' 'A'
實型常量:1.234 3.1415926 -1.423
字符串常量:由雙引號括起來的字符序列(由一個或多個字符組成的)
注意:字符串和字符的區別
'a':字符 占一個字節
"a":字符串 占兩個字節 默認結束標志為‘\0’, 一般不顯示
表示形式: "ahsoifhaiu" "asdf?<@sdaf"

6.變量和常量的區別:

變量:
其職可以更改!
先定義,后使用!
常量:
其值不可更改!
隨時可以使用,無需定義或聲明!
#include<stdio.h>
int main()
{
int numt=34; //變量先定義后使用
//常量名=值
printf("numt=%d,888=%d\n",numt,888);
return 0;
}

二、運算符

1.sizeof():計算大小,得出對應變量或數據類型所占內存空間大小
單位:字節(byte) 1字節=8位(bit)
sizeof DataType:
64位機下:

#######include<stdio.h>
int main()
{
printf("sizeof DataType:\n");
printf("sizeof(char)=%ld\n",sizeof(char)); =1
printf("sizeof(int)=%ld\n",sizeof(int)); =4
printf("sizeof(short)=%ld\n",sizeof(short)); =2
printf("sizeof(long)=%ld\n",sizeof(long)); =8
printf("sizeof(float)=%ld\n",sizeof(float)); =4
printf("sizeof(double)=%ld\n",sizeof(double)); =8
return 0;
}

#######include<stdio.h>
int main()
{
char ch;
short short_size;
int int_size;
long long_size;
float float_size;
double double_size;
printf("sizeof(ch)=%ld\n",sizeof(ch));
printf("sizeof(short_size)=%ld\n",sizeof(short_size));
printf("sizeof(int_size)=%ld\n",sizeof(int_size));
return 0;
}
注意:對比數據類型所占大小,和其定義的變量所占內存的大小!

2.算數運算符(七個)

加:+ 減:- 乘:* 除:/ 取余:% a%b求余 6%4余2

    #include<stdio.h>
    int main()
    {
        int a=12;
        int b=3;
        int sum=a+b;
        //或者:int sum;
        printf("%d,%d,%d\n",a,b,sum);
        return 0;
    }

    #include<stdio.h>
    int main()
    {
        int a=12;
        int b=3;
        int sum=a-b;
        int c=a*b;
        int d=a/b;
        //或者:int sum;
        printf("%d,%d,%d,%d,%d\n",a,b,sum,c,d);
        return 0;
    }

自增:++
++i :num=++i; i=i+1; num=i;
i++ : num=i; i=i+1;
#include<stdio.h>
int main()
{
int num=5;
int sum=++num + ++num; 6+6
printf("sum=%d\n",sum);
int i=5;
int j=i++ + i++; 5+5
printf("i=%d j=%d\n",i,j);

    }

自減:-- --i i--

    #include<stdio.h>
    int main()
    {
       int num=5;
       printf("%d\n",++num);6
       printf("%d\n",num++);6
       printf("%d\n",num--);7
       printf("%d\n",++num);7
       printf("%d\n",num++);7
    }

關系運算符:(結果成立為1 不成立為0)
大于:>
小于:<
等于等于:==
大于或者等于:>=
小于或者等于:<=
不等于:!=

#######include<stdio.h>
int main()
{
int a=3;
int b=4;
printf("a>b:%d\n",a>b); =0
printf("a<b:%d\n",a<b); =1
printf("a==b:%d\n",a==b); =0
printf("a<=b:%d\n",a<=b); =1
printf("a>=b:%d\n",a>=b); =0
printf("a!=b:%d\n",a!=b); =1
}

逗號運算符(,):

表達式1,表達式2,表達式3;
其中每個表達式又可以是一個逗號表達式!
一次計算表達式1,表達式2,表達式3的值,整個逗號表達式的值取決于最后一個表達式的值
#include<stdio.h>
int main()
{
int a=4;
a+2,a3,a-5;
printf("a=%d\n",a); a=4
(a=a+3,a
2),a/3; //有等于號才賦值 這里a=a+3
printf("%d\n",a); a=7

    }

使用scanf()注意事項
(1) 一定要嚴格按照scanf()中的格式輸入變量的值!!
(2) 使用scanf()時,取參數列表中參數的地址,scanf()是將輸入的值保存到變量對應的地址中!
(3) 緩存區問題
scanf() 函數中不能使用換行符:\n;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容