翁愷C語言

聲明結(jié)構(gòu)的形式

相同數(shù)組可以做賦值。

指針的使用場景

12.3多個文件的工程
頭文件是不同.c文件之間的媒介,起到橋梁的作用。


include 有兩種形式:
標準頭文件位置:
C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include

12.1-1 全局變量
全局變量的作用域和存儲期。
全局變量可以得到默認0值
- 類型定義:
P70函數(shù)的定義和調(diào)用
- 函數(shù)定義

當Sum后面有圓括號的時候,標明Sum是一個函數(shù)。
()在函數(shù)里面地位關(guān)鍵,即使不需要有參數(shù)也要有,如果沒有加圓括號,C語言會不認為我們在調(diào)用函數(shù)。

#include <stdio.h>?
void cheer()
{
?printf("cheer\n") ;
}
int main()
{
cheer();
return 0;
}
2.函數(shù)的返回值


3.函數(shù)原型
解決為什么需要對函數(shù)進行聲明的疑問:需要告訴編譯器這個函數(shù)的樣子,否則,只能把函數(shù)題定義在調(diào)用這個函數(shù)的前面。
那么 每一個調(diào)用前面都需要對函數(shù)進行聲明嗎??

#include <stdio.h>
void sum(int begin, int end)//bein and end have been defined here.
{
int i;
int sum=0;
// printf("Please input the Max\n");
// scanf("Max=%d",&Max);
for(i=begin;i<=end;i++)
{
sum=sum+i;
}
printf("%d到%d的和是%d\n",begin,end,sum);
}
int main()
{
sum(1, 10);
return 0;
?}?

P32多路分支
switch 運行效率比較高
case 是程序運行的開始,break是結(jié)束
case --從哪開始執(zhí)行的標志,進入句子(直到運行到break)
break---結(jié)束的標志


用“<”而不是“<=”, 表達的是左閉右開區(qū)間。
這是一種習慣性的方式

要么是有大括號;
或者 后面緊跟的語句之后“;”之前是if的結(jié)束語句。

偏向于第一種代碼:
比較容易堵讀懂,更容易維護。
結(jié)構(gòu)體
結(jié)構(gòu)的運算:
取成員變量比取地址的優(yōu)先級更高。


聲明結(jié)構(gòu),struct point
定義變量,p1-p2,類型是struct point.

結(jié)構(gòu)體聲明的位置

字符串是數(shù)組?。?/p>

指針變量,就是用來保存地址的變量

*p ---p(而不是*p)指向了i, 就是這個量 指向了i這個地址。
int *p, 表示p是一個指針

指針的調(diào)用:


i=6 and its adress is 70
f function save the address of the i with the variable *p.

*p,里面的*是個運算符號,用來訪問指針p所指向地址的變量值。
*p可以當作一個整體int,類似a'r'r'y中的element,

通過*p訪問到了i所在地址上的值(i的值)。

數(shù)組計算
數(shù)組作為函數(shù)的參數(shù)時,不能用size of 而用length??這是為什么呢?指針的時候介紹。。

64位架構(gòu)下,地址是存在8個字節(jié)
32位架構(gòu)下,地址是存在4個字節(jié)的地址下。
32位架構(gòu)下占用4個字節(jié)。
在分配在內(nèi)存的堆棧種的時候,是從上往下分配,所以,他們是挨著的 但是 先定義的i 反倒是的地址比較大。
Ar'ra'y里相鄰位置的地址也是相差4.





終于到了取地址的&了
&是用來取得"變量"的地址,c語言的變量是放在"內(nèi)存"堆棧里面的,這個東西的作用是取出變量的地址。
32位系統(tǒng),通過變量把地址取出來,強制轉(zhuǎn)換成int并輸出。
得到的地址和int型地值,相同

64位的整數(shù)和地址就不一樣了??整數(shù)類型的強制轉(zhuǎn)換是怎么做的??64位架構(gòu)的地址也是8個字節(jié)
地址和int并不是始終相同的,跟架構(gòu)有關(guān)系。

地址分配就涉及到"堆棧"了,
局部變量是按照從上到下分配地址地
指針就是保存地址地變量
通過int來表征地址不靠譜嗎??

%p是用來返回地址的操作,地址和整數(shù)并不一定是相同的
取地址的符號右邊必須是明確的變量,不能有數(shù)學計算之類


循環(huán):

計算機的代碼不是用來描述關(guān)系的,而是一個步驟的描述。

數(shù)組越界的問題
for 循環(huán)的作用就是遍歷數(shù)組:
數(shù)組的大小是100,但是 沒有限制下標能不能超過100
導致: 數(shù)組有越界的可能性。



2022-08-08 8.1-3數(shù)組的環(huán)節(jié)

2021-06-26
Print("\n"),反斜杠n的作用:表示后面空一行。Hello World 后面空一行。

變量名字的規(guī)則,標識符

輸入23的時候并沒有被讀到,按下回車,相當于加上了";",代碼才能讀到。
按下回車,運行下一行,得到77.

C語言優(yōu)先將數(shù)字變成浮點數(shù)運算
整數(shù)是計算機可以完整表達的數(shù),是1的整數(shù)倍。


運算符及優(yōu)先級
賦值也是一個運算符


復合運算符
為了適應底層運算的所有功能

a=1
a++等于1
但是,a等于2
a++對應指令集的inc
a--對應指令集的dec
現(xiàn)在指令集里面不一定有Inc/dec.現(xiàn)在的編譯軟件更高級,可以直接把a=a+1編譯成Inc.目前的意義只是更加簡潔。

本地變量(局部變量,自動變量)生存期自動,作用域
用大括號作為生存界限

