1. 程式人生 > >ios之c語言學習筆記

ios之c語言學習筆記

C語言筆記

1.Printf輸出函式語法
printf的語法 輸出語句
(1)printf("你想輸出的內容");
(2)printf("格式字串",...);佔位符%d整形數 %f小數 %s字串 %c單個字元
printf("\n");換行 
2.常量與變數
定義變數  語法:資料型別 變數名

C語言中資料型別:
       字元char,短整型short
       整型int,長整型long
       單精度浮點:float
       長精度浮點:double
       要想使用變數,必須先定義它。變數通過賦值語句儲存東西.

3.scanf輸入函式語法


scanf("資料型別的佔位符",地址)%d %f %s %c
%ld %lf

inta,b;
printf("請輸入第一個數")
scanf("%d",&a)
printf("請輸入第二個數")
scanf("%d",&b)
printf("%d+%d=%d\n",a,b,a+b);

4.運算子
(1)特殊運算子:() .-> []
(2)算術運算子:+—×/%++--
(3)關係運算符:> >= < <= ==  !=
(4)位操作運算子:&∧/<< >>
(5)邏輯運算子:&&\\!
(6)條件運算子:?:
(7)賦值運算子:= += -= ×= /= %=
5.無條件轉向之goto語句

goto l;
l:

條件轉向語句if語句
if(條件)
{
條件成立時要做的事(一行或多行程式碼)
}
舉例:

int a;
scanf(“%d”,&a);
if(a%2==0)
{
  Pintf(“%d是偶數!\n”,a);
}
if(a%2!=0)
{
  Pintf(“%d是奇數!\n”,a);
}

6.條件判斷之if else語句

if(條件1)
{
條件1成立時要做的事(一行或多行程式碼)
}
else if(條件2)
{
條件2成立時要做的事(一行或多行程式碼)
}..................
else
{
以上條件都不成立時的程式碼
}

舉例1:

int a;
scanf(“%d”,&a);
if(a%2==0)
{
  Pintf(“%d是偶數!\n”,a);
}
else
{
  Pintf(“%d是奇數!\n”,a);
}

舉例2:

int a=0;
printf(“請輸入一個有效的分數(0-100):”);
scanf(“%d”,&a);
if(a<60)
{
  Printf(“%d是不及格!\n”,a);
}
else if(a<80)
{
  Printf(“%d是及格!\n”,a);
}
else if(a<90)
{
  Printf(“%d是優良!\n”,a);
}
else
{
  Printf(“%d是優秀!\n”,a);
}

7.條件判斷之switch開關語句

Swith(表示式)
{
  case1:
  做是值1的事
  breakcase2:
  做是值2的事
  break;
...........
  default:
  如果前面的值都不是的事
}

舉例1:

int a;
scanf(“%d”,&a);
if (a==0)
{
  printf(“零\n”);
}
else If (a==1)
{
  printf(“壹\n”);
}
else If (a==2)
{
  printf(“貳\n”);
}
else If (a==3)
{
  printf(“叄\n”);
}
else  If (a==4)
{
  printf(“肆\n”);
}
else If (a==5)
{
Printf(“伍\n”);
}
else  If (a==6)
{
  printf(“陸\n”);
}
else If (a==7)
{
  printf(“柒\n”);
}
else If (a==8)
{
  printf(“捌\n”);
}
else If (a==9)
{
  printf(“玖\n”);
}
else
{
  printf(“對不起,無法轉換!”);
}

舉例2:

switch(a)
{
  case 0printf(“零\n”);
    breakcase 1printf(“壹\n”);
    breakcase 2printf(“貳\n”);
    breakcase 3printf(“叄\n”);
    breakcase 4printf(“肆\n”);
    breakcase 5printf(“伍\n”);
    breakcase 6printf(“陸\n”);
    breakcase 7printf(“柒\n”);
    breakcase 8printf(“捌\n”);
    breakcase 9printf(“玖\n”);
    breakdefaultprintf(“對不起,無法轉換\n”);
    break;
}

8.迴圈之for語句
從某一處開始,連續不斷的做一件事,就叫迴圈。

for(表示式1(賦值語句 初值);表示式2(條件);表示式3(增值的賦值語句))
{
  迴圈要做的事(一行或多行程式碼)
}

舉例1:

for(int i=0i8i++)
{
printf(“1\n”);(輸出81)

}

舉例2:

for(int i=1i101i++)
{
  printf(“%d\n”,i);(輸出1100的數)
}

舉例3:

for(int i=11i<=55i=i+3{
  printf(“%d\n”,i);(輸出111417.。。。。。。53)
}

舉例4:

for(int i=9i0i--)
{
  printf(“%d\n”,i);(輸出987654321)
}

Continue:結束本次迴圈,開始下一次迴圈
Break:跳出迴圈
For迴圈的巢狀:外面的for迴圈一次,裡面的for迴圈一圈,再迴圈到外面的for。
舉例5:

int a=9;
scanf(“%d”,&a);
forint i=a;i>0;i--)
{
    for(int j=1;j<=3;j++)
   {
      printf(“%d\n”,j)
    }
}
(當輸入5時,輸出5123

9.迴圈之while語句

while(條件)
{
  迴圈體
}

舉例1:

int sum=0,i;
for(i=1;i<=100;i++)
{
  sum=sum+i
}
printf(“sum=%d\n”,sum);(5050

舉例2:

int sum=0,i;
for(i=1;i<=100;i++)
{
  sum=sum+i
  ifsum=3003)
  {
    break;
  }
}
printf(“i=%d\n”,i);(77

舉例3:

int i=0whilei100{
  i++;
  Printf(“%d\n”,i);
}
(輸出1-100)

舉例4:

int i=0sum=0whilesum!=3003)
{
  i++;
 sum+=i
}
printf(“i=%d\n”,i);(77

10.迴圈之do while語句
do
{
迴圈體
}while(條件);
舉例1:

int i=0sum=0do
{
  i++;
 sum+=i
}whilesum!=3003);
printf(“i=%d\n”,i);(77

當知道迴圈次數的時候,用for迴圈,當不知道迴圈次數的時候,用while或do while迴圈。
舉例:

int n;(儲存總人數)
int score;(成績)
int sum=0;(總分)
printf(“請輸入你班級總人數”)
scanf(“%d”,&n)
forint i=1;i<=n;i++)
{
  printf(“請輸入第%d名同學成績”,i);
  scanf(“%d”,&score);
  sum+=score;
}
printf(“平均分是%g\n,sum*1.0/n”);

舉例:

int n=0;(計數器)
int sum=0;(累加器)
int temp;(每一名同學成績)
printf(“請輸入第%d名同學成績”,n+1);
scanf(“%d”,&temp);
while(temp>0)
{
  n++;
  sum+=temp;
  printf(“請輸入第%d名同學成績”,n+1);
  scanf(“%d”,&temp);
}
printf(“平均分是%g\n,sum*1.0/n”);

11.函式
1.在程式的不同地方出現了相同的程式碼
2.把大的應用改成幾個小的部分
定義(函式的主體部分,代表函式)
宣告(告訴下面的程式碼這個函式存在,你可以使用它)
呼叫(使用函式)
返回值 函式的名字(引數的列表)——函式頭
{
函式體
}
Paste_Image.png
Printf(“11”);相同時,就用函式,例如:
Paste_Image.png
12.自定義函式
舉例1.

舉例2.
Paste_Image.png
13.函式的呼叫
點右鍵-——add file to-——add.c/add.h檔案
Add.c檔案:{
float add(float a,float b,float c,)定義
Return a+b+c;
}
Add.h檔案:float add(float a,float b,float c,);宣告

全域性變數(定義在所有函式外面的變數叫全域性變數)
區域性變數(定義在大括弧裡面的變數)
變數的作用域,就是變數的生命週期:在大括號外面使用不了裡面的變數,裡面能夠使用外面的變數(裡面能夠看到外面)
14.陣列
要想使用陣列,就必須先定義它。
語法: 資料型別 陣列名稱[整型常量]
舉例:Int cj[6]

(1).逐一賦值Int cj[0]=44;Int cj[1]=55;..........Int cj[5]=99;
(2).在定義時賦值Int cj[6]={44,55,66,77,88,99};
(3).for迴圈賦值
for(int i=0i6i++)
{
  cj[i]=60+i
}
printf(“cj[%d]=%d”,i,cj[i]);

15.二維陣列
在c語言中,字串就是使用字元陣列來儲存的
(1)

char chh[]={‘a’,’a’,’a’,’a’,’\0’};
Printf(“%s”,chh);(輸出的是aaaa)

(2)

char chh[]=”hello”;相當於char chh[6]={‘h’,’e’,’l’,’l’,’o’,’\0’};

(3)

int n[3][3]={{0,1,2},{3,4,5},{6,7,8}};

16.指標
(1)

    int aa=123;
    printf(“%d”,*&a
&變數   取地址的符號
*地址   得到地址裡面的內容

(2)

{
int a;
a=123printf(“a=%d\n”,a);
int * p;
p=&a;
*p=250;
printf(“a=%d\n”,a);
return 0;
}第一次輸出123,第二次輸出250.

(3)指標使用的情況:
1.在一個函式裡面想訪問另一個函式裡的變數
2.動態記憶體申請


17.陣列與指標
陣列名就是一個指標

{
  int a[10];
  for(int i=0;i<10;i++)
  {
    a[i]=i+1
  }
  int * p=a ;
  printf(“a[9]=%d\n”,*(p+9))
}
輸出陣列
{
  int a[10];
  for(int i=0;i<10;i++)
  {
    a[i]=i+1
  }
  int * p=a ;
  for(int i=0;i<10;i++)
  {
    printf(“a[%d]=%d\n”,i,*(p+i)) ;
  }
}

18.字串

#include<string.h>
Strlen計算字串的長度
Strcat字串相連
Strcmp字串的比較0代表相等
Strcpy字串的賦值

19.結構體

語法: Struct結構名稱
{
結構的資料
};

舉例1.:

舉例2:

20.結構體的使用
結構是可以巢狀的,結構中還可以有結構。

別名typedef


21.聯合和列舉

聯合union

結構中的成員都有自己單獨的記憶體,聯合中的成員是共同使用記憶體。對於聯合,在同一時間只能使用一個成員。

聯合在程式中的運用:

列舉enum(羅列值)

22.檔案
1.開啟檔案fopen
2.對檔案進行操作(讀r或寫w)
寫檔案有3個函式:fputc寫一個字元;fputs寫一個字串;fprintf用格式化的寫。
讀檔案的函式:fscanf
3.關閉檔案fclose

舉例:

{
  FILE * fp=NULL;
  fp=fopen(“abc.txt”,”w”);第一個引數是要開啟的檔案;第二個引數是操作的型別w r
  if(fp==NULL)
  {
    printf(“開啟檔案失敗!”);
    return 0;
  }
  for(int i=’a’;i<=’z’;i++)
  {
    fputc(i,fp);輸出a到z的26個字母
  }
  fclose(fp);
  return 0;
}

23.二進位制檔案
寫檔案:fwrite

讀檔案:fread