-
提示:由于上一篇博客的初識c語言并沒有講完因此我們是第二次的補充講述而且本章都是對內容的初步講解,
文章目錄
- 回圈陳述句
- 函式
- 陣列
- 運算子
- 常見關鍵字
- define 定義常量和宏
- 指標
- 結構體
一、回圈陳述句
-
1.什么是回圈陳述句呢?
-
答;有些事必須一直做,比如我日復一日的講課,比如大家,日復一日的學習,
2.如何實作c語言的回圈呢?
- while陳述句-講解
- for陳述句
- do ... while陳述句
//while回圈的實體
#include <stdio.h>
int main()
{
printf("加入公司\n");
int line = 0;
while(line<=20000)
{
line++;
printf("我要繼續努力敲代碼\n");
}
if(line>20000)
printf("贏取白富美\n");
return 0;
}
二、函式
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("輸入兩個運算元:>");
scanf("%d %d", &a, &b);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
我們將上述代碼用函式寫就是下面的代碼
在此期間我們使用構造了int Add(x,y)函式
#include <stdio.h>
int Add(int x, int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("輸入兩個運算元:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
三、陣列
1.陣列定義
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定義一個整形陣列,最多放10個元素
2 .陣列的下標
C語言規定陣列的每個元素都有一個下標,且下標都是0開始的;
3.陣列的使用
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
四、運算子
1.算術運算子
+ - * / %
2.移位運算子
>> <<
3.位運算子
& ^ |
4.賦值運算子
= += -= *= /= &= ^= |= >>= <<=
5.單目運算子
! 邏輯反操作
- 負值
+ 正值
& 取地址
sizeof 運算元的型別長度(以位元組為單位)
~ 對一個數的二進制按位取反
-- 前置、后置--
++ 前置、后置++
* 間接訪問運算子(解參考運算子)
(型別) 強制型別
6.關系運算子
>
>=
<
<=
!= 用于測驗“不相等”
== 用于測驗“相等
7. 與或
&& 邏輯與
|| 邏輯或
8.條件運算子
exp1 ? exp2 : exp3
五、關鍵字
auto break case char const continue default do double else enum
extern float for goto if int long register return short signed
sizeof static struct switch typedef union unsigned void volatile while
5.1 關鍵字 typedef typedef 顧名思義是型別定義這里應該理解為型別重命名,
比如:
//將unsigned int 重命名為uint_32, 所以uint_32也是一個型別名
typedef unsigned int uint_32;
int main()
{
//觀察num1和num2,這兩個變數的型別是一樣的
unsigned int num1 = 0;
uint_32 num2 = 0;
return 0;
}
5.2 關鍵字static 在C語言中:
static是用來修飾變數和函式的
1. 修飾區域變數-靜態區域變數
#include <stdio.h>
void test()
{
int i = 0;
i++;
printf("%d ", i);
}
int main()
{
int i = 0;
for(i=0; i<10; i++)
{
test();
}
return 0;
}
//代碼2
#include <stdio.h>
void test()
{
//static修飾區域變數
static int i = 0;
i++;
printf("%d ", i);
}
int main()
{
int i = 0;
for(i=0; i<10; i++)
{
test();
}
return 0
2. 修飾全域變數-靜態全域變數
//代碼1
//add.c
int g_val = 2018;
//test.c
int main()
{
printf("%d\n", g_val);
return 0;
}
//代碼2
//add.c
static int g_val = 2018;
//test.c
int main()
{
printf("%d\n", g_val);
return 0;
}
3. 修飾函式-靜態函式
//代碼1
//add.c
int Add(int x, int y)
{
return c+y;
}
//test.c
int main()
{
printf("%d\n", Add(2, 3));
return 0;
}
//代碼2
//add.c
static int Add(int x, int y)
{
return c+y;
}
//test.c
int main()
{
printf("%d\n", Add(2, 3));
return 0;
}
//define定義識別符號常量
#define MAX 1000
//define定義宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10*ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
結論: 一個函式被static修飾,使得這個函式只能在本源檔案內使用,不能在其他源檔案內使用,
六、 #define 定義常量和宏
//define定義識別符號常量
#define MAX 1000
//define定義宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10*ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
七、指標
記憶體
記憶體是電腦上特別重要的存盤器,計算機中程式的運行都是在記憶體中進行的 , 所以為了有效的使用記憶體,就把記憶體劃分成一個個小的記憶體單元,每個記憶體單元的大小是1個位元組, 為了能夠有效的訪問到記憶體的每個單元,就給記憶體單元進行了編號,這些編號被稱為該記憶體單元的地 址,
#include <stdio.h>
int main()
{
int num = 10;
#//取出num的地址
//注:這里num的4個位元組,每個位元組都有地址,取出的是第一個位元組的地址(較小的地址)
printf("%p\n", &num);//列印地址,%p是以地址的形式列印
return 0;
}

為了使用指標我們先定義一個指標變數
int num = 10;
int *p;//p為一個整形指標變數
p = &num;
指標的使用實體:
#include <stdio.h>
int main()
{
int num = 10;
int *p = #
*p = 20;
return 0;
}
7.2 指標變數的大小
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char *));
printf("%d\n", sizeof(short *));
printf("%d\n", sizeof(int *));
printf("%d\n", sizeof(double *));
return 0;
}
結論:指標大小在32位平臺是4個位元組,64位平臺是8個位元組,
八、結構體
結構體是C語言中特別重要的知識點,結構體使得C語言有能力描述復雜型別, 比如描述學生,學生包含: 名字+年齡+性別+學號 這幾項資訊,
struct Stu
{
char name[20];//名字
int age; //年齡
char sex[5]; //性別
char id[15]; //學號
};
結構體的初始化:
//列印結構體資訊
struct Stu s = {"張三", 20, "男", "20180101"};
//.為結構成員訪問運算子
printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);
//->運算子
struct Stu *ps = &s;
printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps-
>id);
位元就業課
希望大家多多支持,感謝位元教育.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292084.html
標籤:其他
