執行**:
int a = 1;
int b = 0;
int c = 0;
int d = (++a) * (c = 1);
則a,b,c,d的值分別是多少?
2,0,1,2
bool flag;
if(flag) 或 if(!flag)
float x = 0.001;
if(x <= 0.001)
void foo(void)
輸出: >6
有符號數與無符號數轉換規則, 將轉換為無符號型別。
-20 的機器數為ffff ffech
則a+b大於 6
所以盡量使用無符號數,來保證資料型別的統一。
c語言的編譯預處理指令均以「# 」開頭。例如:#pragma,#define。
sizeof 為運算子,malloc 為函式。
在#include
和#include "filename.h"
的區別?
1.使用巨集指令#include
是通知編譯器在預處理時要包含開發環境中提供的名為filename.h 的標頭檔案。
2.使用巨集指令#include "filename.h"
是要求編譯器在預處理時優先包含編譯者指定路徑下的名為filename.h的標頭檔案,如果在指定路徑下沒有發現名為filename.h的標頭檔案,則使用系統提供的標頭檔案。
#ifndef dialog_h // 判斷如果沒有巨集定義dialog_h,則執行;如果已經定義dialog_h則不執行。
#define dialog_h // 巨集定義 dialog_h
...**段
#endif // dialog_h // 結束
作用是防止該標頭檔案被重複引用。
棧:由編譯器進行管理,自動分配和釋放。
堆:用於程式動態申請分配和釋放空間。
全域性(靜態)儲存區:分為data段和bss段。data段存放初始化的全域性變數和靜態變數;bss段存放未初始化的全域性變數和靜態變數。
程式**段:存放程式的二進位制**。
在乙個函式中說明乙個靜態變數。
在乙個模組內說明乙個靜態變數,可以被模組內所有函式訪問,但不能被模組外其他函式訪問。
在乙個模組內說明乙個靜態的函式,靜態函式只能被同一模組內的其他函式巢狀呼叫,使函式本地化。
具有相同型別的指標型別變數p
與陣列a
,不能進行的操作是(d)
a. p = a; b. *p = a[0]; c. p = &a[0]; d. p =&a;
選項d:&a 的含義是取陣列指標(即得到的位址的資料型別是指向陣列的指標),與指標變數p的型別不匹配。可修改為p = (int *)&a;
#include
int main()
; int
*ptr = (int
*)(&a + 1);
printf("%d\r\n",(*ptr - 1));
return0;}
輸出:4
解析:在函式中,a為int型別陣列,陣列名a也代表陣列a的起始位址。&a的含義是指向陣列a的指標( 即int()[4] ),表示式(&a+1)的含義是指向下乙個有4個int元素的整型陣列,即(&a+1)在數值上等於陣列元素a[3]的「下乙個位址」。為指標ptr賦值的表示式是(int )(&a+1),其含義是將位址強制轉換為指向int的指標,即指標ptr指向a[3]之後的「下乙個元素」。
int (*a)[10]; //定義的是乙個陣列指標,指向乙個有10個int型別元素的整型陣列。
int*a[10]; // 定義的是乙個指標陣列,每個元素為指向int型的指標。
設有int w[3][4];
且pw
是與陣列名w
等價的陣列指標,則pw
的初始化語句為(int (*pw)[4] = w);
給位址0xaae0275c賦值為1?
1.
volatile
int *p = (int *)0xaae0275c; *p = 1;
2.volatile
int *p = (int *)0xaae0275c; p[0] = 1;
3.*(volatile
int *)0xaae0275c = 1;
陣列定義為int a[4][5];
引用*(a+1)+2
表示a陣列第1行第2列元素的位址。
由於a是二維陣列, a:陣列名,代表陣列的起始位址(常量)
a+1:型別也為int (*)[5]
,指向a[1]
。
*(a+1):型別為int *
,指向一維陣列中下標為 1的行。
程式設計基礎知識
這幾天比較忙,學習比較緊張,發帖耽誤了。這次來寫一下程式設計基礎知識 首先什麼是程式?程式是為了實現乙個特定的目標而預先設計的一組可操作的工作步驟。程式就是系統可以識別的一組有序的指令。那程式有什麼用呢?指揮計算機執行我們想要它完成的動作。程式儲存在 儲存器 處理器 cpu 處理器 cpu,cent...
程式設計基礎知識
基本字元 基本詞彙 英文本母,區分大小寫,共52個。阿拉伯數字0 9,共10個。空格 製表符 tab鍵 換行鍵 enter鍵 統稱為空白符。例語句的結束標誌 逗號表示式中的 以及下劃線 其包括識別符號 關鍵字 分隔符 注釋符 常量和運算子。在這裡常量和運算子不做介紹。命名規則 只能由數字 字母 下劃...
程式設計基礎知識大全
前序,中序,後序遍歷 所謂前,中,後都是對根節點的位置而言。前序遍歷 先根節點,後左子樹,再右子樹。中序遍歷 先左子樹,後根節點,再右子樹。後序遍歷 先左子樹,後右子樹,再根節點。樹的深度優先遍歷 廣度優先遍歷 這些概念記得大學時還是比較清楚的,但是由於工作中幾乎就沒用過,終歸模糊了。查了查很快就能...