注意:計算機中使用補碼來表示資料的!!!(由於正數的原碼、反碼、補碼相同,所以在計算機中顯示的二進位制(補碼)和我們通過計算把數字轉碼成二進位制(原碼)相同)
有符號int型別,取值範圍是:-2^31 ~ (2^31 - 1)
所以int能表示的最大值是 (2^32 -1)
signed:有符號,最高位表示符號位
unsigned:無符號,最高位表示數值位
在c語言中沒有字串,只能使用字元陣列來表示字串;每個字元陣列最後面都有乙個結束符\0,所以字元陣列的長度都+1;
char c = "你好啊hello";
%d
- int
%ld – long int
%lld
- long long
%hd – 短整型
%c - char
%f - float
%lf – double
%u – 無符號數
%x – 十六進製制輸出 int 或者long int 或者short int
%o - 八進位制輸出
%s – 字串
一級指標
二級指標
指標如果沒有賦值,那麼就不能使用,此時指標指向的位址是乙個隨機值,這種指標叫野指標
#include
#include
void function(int* p,int* q)
main()
#include
#include
void function(int* p)
main()
#include
#include
void function(int
** p)
main()
int i =;
int* p = &i;
*p // 1
*(p+1) // 2
char* q = &i;
*q // 1
*(q+4) // 2 注意:這裡如果寫成*(q+1)是錯誤的!!!因為陣列中儲存的是int型,每個元素佔4個位元組,指標應該向右位移4個位元組才能拿到下乙個元素
(1) 在棧上分配的記憶體,叫靜態記憶體
(2) 在堆上分配的記憶體,叫動態記憶體
申請方式
系統申請後的反應
申請大小的限制
申請效率的比較
堆和棧中的儲存內容
記憶體的**
#include
#include
main()
printf("請輸入插班人數:");
int newcount;
scanf("%d", &newcount);
//現在原來舊的堆記憶體後面,擴充套件新的空間
//如果舊堆記憶體後面的空間已經被別的程式占用了,那麼就無法擴充套件
//如果不能擴充套件,就會尋找乙個塊足夠大的記憶體區域,申請新的堆記憶體 ,並且會把舊堆記憶體的資料複製到新的堆記憶體中
//釋放舊的堆記憶體
p = realloc(p , (count + newcount) * sizeof(int));
for(i = count + 1; i <= count + newcount; i++)
for(i = 1; i <= count + newcount; i++)
system("pause");
}
struct student
第二種
struct student2
st2;
第三種
struct
st3
#include
#include
void study()
// 定義結構體
// 結構體中不能定義函式,但是可以定義函式指標
struct student;
main();// std 結構體變數
printf("芳齡%d\n",std.age);
std.studyp();// 第一種方法
struct student* stdp = &std;
(*stdp).studyp(); // 第二種方法
// ->左邊必須是結構體的一級指標,右邊是函式指標名字
stdp->studyp();// 第三種方法(開發中一般使用這種 )
system("pause");
}
#include
#include
main() un;
un.i = 30;
un.s = 20;
printf("%d\n",un.i);
// 20 聯合體同時只能有乙個值,後面的值會把前面賦給聯合體變數的值覆蓋掉
printf("%d\n",sizeof(un));
// 4個位元組 聯合體長度取變數中的最大值 int
system("pause");
}
#include
enum weekday
;int main(void)
typedef newname oldtype;
#include
#include
// hehe這個時候跟int的作用一樣,相當於給int起了個別名
typedef
int hehe;
main()
c 語言基礎
三個訪問描述符 public private 和protected 都可以修飾類的資料成員和成員函式 public 可以可以被任何訪問,private 只能被該類的公,私成員函式,該類的友元函式或者友元類的成員函式訪問。protected 只能被該類的公,私成員函式和該類的派生類訪問。c 中除了,和...
c語言基礎
1.問題描述 從鍵盤輸入三個整數,分別存入x,y,z三個整型變數中,計算並輸出三個數的和以及平均值。輸入形式 從鍵盤輸入三個整數,整數之間以空格隔開。輸出形式 在螢幕上分兩行顯示結果 第一行為三個數的和,整數形式輸出 第二行為三個數的平均值,浮點數形式輸出,小數點後保留兩位小數。輸入樣例 3 2 3...
C語言基礎
找最大最小整數 2.問題描述 編寫乙個程式,使用者輸入若干整數,試找出其中的最大數和最小數。輸入形式 使用者在第一行待輸入資料個數,在第二行輸入資料。輸出形式 程式在下一行輸出資料的最大值和最小值 樣例輸入 589 62 96 74 52 樣例輸出 96 52 樣例說明 使用者第一次輸入的為資料個數...