C語言基礎(chǔ)——基本變量和語法,運(yùn)算符(20161212)

c語言之父 丹尼斯-里奇 貝爾實(shí)驗(yàn)室

C語言優(yōu)點(diǎn):運(yùn)算符豐富;數(shù)據(jù)結(jié)構(gòu)類型豐富;結(jié)構(gòu)化的控制語句;語法限制相對(duì)自由;允許訪問物理內(nèi)存,可對(duì)硬件操作;執(zhí)行效率高;移植性好。

缺點(diǎn):代碼數(shù)量多時(shí),不可控性增加,難度較大。

一、c基本變量及語法

1、C引入

  編譯:gcc hello.c -o hello //生成目標(biāo)文件,必須加上hello

  程序:                           解析: 

#include<stdio.h>                       //#;預(yù)處理命令  
                                         // include :頭文件包含
                                          // < >:把括號(hào)里的內(nèi)容引入到源文件中
                                         // stdio.h:頭文件,是計(jì)算機(jī)在帶的庫,可以直接使用
  int main (int argc,char *argcv[])   //main:函數(shù)名,main()是主函數(shù),c程序源文件有且只能有一個(gè)main()函數(shù),即主函數(shù)??!C程序的入口,即所有的C程序都是從main開始執(zhí)行
                                          // int argc :參數(shù)個(gè)數(shù)

                                          //   char *argv[]:記錄參數(shù) 
  
 { 

printf("hello,world!");          //printf():庫函數(shù),包含在<stdio.h>中,按一定的格式輸出。

return 0;                                 //return 0;返回值,函數(shù)結(jié)束。

 }





ps:此程序基本決定了,C程序的框架!

2、C的數(shù)據(jù)類型

(1)基本數(shù)據(jù)類型:

整數(shù)型:

int, 基本整型

short int,短整型

long int,長整型

unsigned,無符號(hào)

singed,有符號(hào)

字符型:char

字符:由' '引起來的單個(gè)字母,數(shù)字,或者其他符號(hào),e,1,!等

getchar():獲取單個(gè)字符

putchar():輸出的單個(gè)字符

實(shí)型,浮點(diǎn)型:

              float:單精度     有效位7位左右

              double :雙精度  有效位15位左右

                numf e/E n   //n為整數(shù),科學(xué)計(jì)數(shù)法

                  float  num=1.23E4;//num為1.23*10^4

枚舉類型:enum

構(gòu)造數(shù)據(jù)類型:

數(shù)組類型,結(jié)構(gòu)體類型(struct),聯(lián)合體類型(union)

指針類型:

空類型:void

#include<stdio.h>
//數(shù)據(jù)類型的實(shí)例
int main(int argc,char *argv[])
{
    //定義整型變量,并初始化
    int a=2;
    //定義整型變量
    int b,c,d;
    //給整型變量賦值
    b=12;
    c=13;
    d=15;
    //定義多個(gè)整型并初始化
    int e=11,f=10,g=9;
    //無符號(hào)數(shù)據(jù)類型
    unsigned h=-123;
    printf("%d\n",a);

    printf("%d\n",h);
    printf("%d\n",d);
return 0;
}

(2)變量的定義:

<1>DataType Name1,Name2,Name3,...,Namen

可以定義多個(gè)變量,中間用“,”隔開,結(jié)尾用“;”結(jié)束。

<2>

DataType Name1;

DataType Name2;

DataType Name3;

<3>建議一行定義一個(gè)變量,并初始化?。?!

DataType Name1 = value;

3.標(biāo)識(shí)符:

包括變量名,函數(shù)名,及其他標(biāo)號(hào)等

<1>標(biāo)識(shí)符的組成

字母(A~Z,a~z),下劃線(_),數(shù)字,且規(guī)定第一個(gè)字符,不能為數(shù)字

<1>命名規(guī)則

可讀性要高,做到“見名知意”

駝峰命名法:單詞首字母大寫

杜絕使用漢語拼音!?。?/p>

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

<1>printf()----按一定的格式輸出:printf(“占位符”,參數(shù)表);
一一對(duì)應(yīng)

----printf(“打印輸出的內(nèi)容”)

----%m.nf:(右對(duì)齊)

m:總位數(shù)

n:小數(shù)部分的保留位數(shù),若n+1大于m,則輸出n代表原來數(shù)值。

----%-m.nf按照左對(duì)齊。

<2>scanf()

按一定格式輸入:scanf(“占位符”,&參數(shù)表);

一一對(duì)應(yīng)
#include<stdio.h>
int main ()
{
    //定義變量并初始化
    float numf=1.234;
    //按格式輸出numf的值
    printf("numf =%f\n",numf);
    //輸入numf的值,&numf為地址,將輸入的數(shù)據(jù)保存到numf對(duì)應(yīng)的空間中!
    scanf("%f",&numf);
    printf("numf =%5.3f\n",numf);
    return 0;
    
}

&:取地址符號(hào)


占位符:

                  print()              scanf()

int                 %d                      %d

char                   %c                       %c

long                  %ld                       %ld

float                %f                      %f

double              %lf                     %lf

字符串             %s

5.常量

數(shù)字常量:123 1 -323

字符常量:‘s’ ‘$’

實(shí)型常量:1.23 -1.234

字符串常量:有“ ”括起來的字符序列,由一個(gè)或者多個(gè)字符組成。

注意:字符串和字符的區(qū)別

‘a(chǎn)’:占用一個(gè)字節(jié)

“a”:占用兩個(gè)字節(jié)

‘\0’:字符串的結(jié)束標(biāo)志,一般不顯示

6.變量和常量的區(qū)別

變量:

其值可以更改,先定義后使用。

常量:

其值不可以更改,隨時(shí)可以使用,無需定義或聲明。

變量的初始化:

變量名=常量;//注:類型一定要一致?。?!

二、運(yùn)算符

1、sizeof()

計(jì)算大小,得出對(duì)應(yīng)變量或數(shù)據(jù)類型所占內(nèi)存空間的大小

(1)單位:字節(jié)(byte)
1字節(jié)=8位(bit)

sizeof DataType:  //64位機(jī)下

sizeof(cahr)=1

sizeof(int)=4

sizeof(short)=2

sizeof(long)=8

sizeof(float)=4

sizeof(double=8

sizeof DataType:  
//
32位機(jī)下

sizeof(cahr)=1

sizeof(int)=4

sizeof(short)=2

sizeof(long)=4 //只有l(wèi)ong 不同

sizeof(float)=4

sizeof(double=8

(2)對(duì)應(yīng)變量內(nèi)存打大小

sizeof(ch)=1

sizeof(short_size)=2

sizeof(int_size)=4

sizeof(long_size)=8

sizeof(float_size)=4

sizeof(double_size)=8

注意:(1)(2)的結(jié)果,對(duì)比數(shù)據(jù)類型所占大小,和其定義變量所占的內(nèi)存大小

#include<stdio.h>   //sizeof實(shí)例
int main()
{
    printf("sizeof DataType:\n");
    printf("sizeof(cahr)=%ld\n",sizeof(char));
    printf("sizeof(int)=%ld\n",sizeof(int));
    printf("sizeof(short)=%ld\n",sizeof(short));
    printf("sizeof(long)=%ld\n",sizeof(long));
    printf("sizeof(float)=%ld\n",sizeof(float));
    printf("sizeof(double=%ld\n",sizeof(double));
    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));
    printf("sizeof(long_size)=%ld\n",sizeof(long_size));
    printf("sizeof(float_size)=%ld\n",sizeof(float_size));
    printf("sizeof(double_size)=%ld\n",sizeof(double_size));

    return 0;
}

2、算數(shù)運(yùn)算符(七個(gè))

加+、減-、乘×、除/、取余%

自增:++

++i  //先自增后取值,

num=++i;

即:i=i+1;

     num=i+1

i++ //先取值后自增

num=i++

即num=i;

i=i+1;
#include<stdio.h>
//自加運(yùn)算實(shí)例
int main()
{
    int num=5;
    int sum=++num + num++;
    printf("sum=%d\n",sum);
    int i=5;
    int j=i++ + i++;
    printf("j=%d,i=%d\n",j,i);
    return 0;
}
#include<stdio.h>//基本算數(shù)運(yùn)算
int main()
{

int a=12;
    int b=3;
    int sum=a+b;
    printf("%d,%d,%d\n",a,b,sum);
    int min=a-b;
    printf("%d,%d,%d\n",a,b,sum);
    int mul=a*b;
    printf("%d,%d,%d\n",a,b,mul);
    int del=a/b;
    printf("%d,%d,%d\n",a,b,del);
    int rem=a%b;
    printf("%d,%d,%d\n",a,b,rem);

    return 0;
}

自減:--

--i:先自減,后運(yùn)算

i--:先取值,后自減

3、關(guān)系運(yùn)算符

大于:>

a>b:成立,返回1;不成立返回0;

小于:<

a<b:成立,返回1;不成立返回0;

等于:==

a==b:成立,返回1;不成立返回0;

大于等于:>= //a大于b,或者a=b;

a>=b:

成立,返回1;不成立返回0;

小于等于:<=

a<=b:     //a小于b,或者a=b;成立,返回1;不成立返回0;

不等于:!=

a!=b:成立,返回1;不成立返回0;

4.逗號(hào)運(yùn)算符(,)

表達(dá)式1,表達(dá)式2,表達(dá)式3,...

//其中每一個(gè)表達(dá)式又可以是一個(gè)逗號(hào)表達(dá)式!

//依次計(jì)算表達(dá)式1,表達(dá)式2,表達(dá)式3,.....

//表達(dá)式的值取決于最后一個(gè)表達(dá)式的值
#include<stdio.h>  //關(guān)系運(yùn)算符實(shí)例
int main()
{
    int a=3;
    int b=4;
    printf("input a,b:");
    scanf("%d,%d",&a,&b);
    int res = a>b;
    printf("%d>%d的結(jié)果為:%d\n",a,b,res);
    res = a <= b;
    printf("%d<=%d的結(jié)果為:%d\n",a,b,res);
/*  printf("a>b :%d\n",a>b);
    printf("a<b :%d\n",a<b);
    printf("a==b:%d\n",a==b);
    printf("a<=b:%d\n",a<=b);
    printf("a>=b:%d\n",a>=b);
    printf("a!=b:%d\n",a!=b);
*/
    return 0;
}

5、使用scanf

注意事項(xiàng)

(1)一定要嚴(yán)格按照scanf()中的格式輸入變量的值?。?!

(2)使用scanf()時(shí),參數(shù)列表中的參數(shù)地址,scanf()是將輸入的值保存到變量對(duì)應(yīng)的地址中!

(3)緩存區(qū)問題-----重點(diǎn)

scanf()函數(shù)中不能使用換行符:’\n’

總結(jié):C語言基本的語法和變量以及運(yùn)算符,以前有過接觸,沒有理解難度,難點(diǎn)在于編程熟練程度不夠,需要強(qiáng)化練習(xí)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 版權(quán)聲明:本文為 gfson 原創(chuàng)文章,轉(zhuǎn)載請注明出處。注:作者水平有限,文中如有不恰當(dāng)之處,請予以指正,萬分感謝...
    gfson閱讀 3,495評(píng)論 0 6
  • ?1 C語言程序的結(jié)構(gòu)認(rèn)識(shí) 用一個(gè)簡單的c程序例子,介紹c語言的基本構(gòu)成、格式、以及良好的書寫風(fēng)格,使讀者對(duì)c語...
    CONLYOUC閱讀 8,882評(píng)論 9 66
  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,616評(píng)論 3 44
  • 昨日ivvi新品背面照的曝光,黑色主打,低調(diào)奢華有內(nèi)涵,讓不少人期待了一把! 今日實(shí)時(shí)追蹤,ivvi新品諜照再次曝...
    椰子姐姐閱讀 322評(píng)論 0 0
  • 如沐的秋風(fēng)吹過校園,一株株小草探出了腦袋,他們向看怪物一樣看著大樹,驕傲的舉起腦袋,對(duì)大樹說,我們的夢想比你還高呢...
    賈馨婷閱讀 910評(píng)論 2 6

友情鏈接更多精彩內(nèi)容