Time of Update: 2017-01-19
(1)表示機構內位域的定義(即該變數占幾個bit空間)複製代碼 代碼如下:typedef struct _XXX{ unsigned char a:4; unsigned char c;} ;
Time of Update: 2017-01-19
下面來看一段代碼,看看三種傳遞方式產生的結果。複製代碼 代碼如下:#include <cstdlib>#include <iostream>using namespace std;void change1(int n){ cout << "值傳遞--函數操作地址" << &n << endl; n ++;}void change2(int &
Time of Update: 2017-01-19
用字元數組方法:基本思路是,先判斷字元的結束標誌'\0',然後從該位置向前輸出。實現代碼:複製代碼 代碼如下:#include<iostream>using namespace std;int main(){ char a[50]; cout<<"please input a string:"; cin>>a; int
Time of Update: 2017-01-19
C語言運算子及其優先順序匯總表口訣圓下箭頭一頓號非凡增減富強針地長三乘除,四加減,五移位千萬別把魚忘記,它在盛飯的廚子裡小燈大燈燈燈不等爸餵魚,舅疑惑,裸雞也疑惑十三姨,十四父,十五逗,兜到低“圓下箭頭一頓號”指的是第15級的運算子。其中圓指的是運算子(),下指的是下標運算子[],箭頭指的是指向結構體成員運算子->,頓號指的是結構體成員運算子、 “非凡增減富強針地長”指的是第14級的運算子。其中非指的是邏輯運算子!,凡指的是按位取反運算子~,增減指的是自增和自減運算子++和--,
Time of Update: 2017-01-19
看著有錯的程式,不知該如何改起,本人通過對C的學習,積累了一些C編程時常犯的錯誤,寫給各位學員以供參考。1、書寫標識符時,忽略了大小寫字母的區別。複製代碼 代碼如下:main(){ int a=5; printf("%d",A);}編譯器把a和A認為是兩個不同的變數名,而顯示出錯資訊。C認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。2、忽略了變數的類型,進行了不合法的運算。複製代碼 代碼如下:main(){ float
Time of Update: 2017-01-19
一、程式結構的最佳化1、程式的書寫結構雖然書寫格式並不會影響產生的程式碼品質,但是在實際編寫程式時還是應該尊循一定的書寫規則,一個書寫清晰、明了的程式,有利於以後的維護。在書寫程式時,特別是對於While、for、do…while、if…elst、switch…case等語句或這些語句嵌套組合時,應採用“縮格”的書寫形式,2、標識符程式中使用的使用者識別碼除要遵循標識符的命名規則以外,一般不要用代數符號(如a、b、x1、y1)作為變數名,應選取具有相關含義的英文單詞(或縮寫)或漢語拼音作為標識符
Time of Update: 2017-01-19
C語言一共有32個關鍵字,如下所述: auto :聲明自動變數 short :聲明短整型變數或函數 int: 聲明整型變數或函數 long :聲明長整型變數或函數 float:聲明浮點型變數或函數 double :聲明雙精確度變數或函數 char :聲明字元型變數或函數 struct:聲明結構體變數或函數 union:聲明共用資料類型 enum :聲明枚舉類型 typedef:用以給資料類型取別名 const :聲明唯讀變數
Time of Update: 2017-01-19
不止一個學生問到我:“老師,為什麼我們的應用程式設計要學C語言而不是別的?C語言不是已經過時了嗎?如果現在要寫一個Windows程式,用VB或Dephi開發多快呀,用C行嗎?退一萬步,為什麼選擇C而不是C++呢?” 這個問題三言兩語還真說不全。簡單來說,C語言是電腦程式語言的基礎,是實用的程式設計工具,學好C語言對你今後學習JAVA、C++、VB等可以打下良好的基礎,因為這些語言大部分都是由C語言擴充或衍生而來的。C可以用於開發比較底層的東西,比如驅動、通訊協定之類,在Unix和Linux環境
Time of Update: 2017-01-19
C語言是進階語言,它的文法接近於人類的自然語言,但比自然語言嚴謹。電腦無法直接將C語言的代碼運行,他們並不懂得什麼是C語言,實際上,電腦只處理他們的機器語言,所以我們必須為自己找一個翻譯,這個翻譯可分為2種: 1.編譯器 編譯器是“文章的譯者”,它在我們完成創作後將其翻譯(實際上是編譯)成為機器語言。 2.解譯器 解譯器是“隨聲翻譯”,代碼啟動並執行同時它們就開始工作,BASIC就是使用解譯器,一般認為這種方法效率很低。
Time of Update: 2017-01-19
一、基本內容: C語言中的函數可以遞迴調用,即:可以直接(簡單遞迴)或間接(間接遞迴)地自己調自己。 要點: 1、C語言函數可以遞迴調用。 2、可以通過直接或間接兩種方式調用。目前只討論直接遞迴調用。二、遞迴條件 採用遞迴方法來解決問題,必須符合以下三個條件: 1、可以把要解決的問題轉化為一個新問題,而這個新的問題的解決方案仍與原來的解決方案相同,只是所處理的對象有規律地遞增或遞減。 說明:解決問題的方法相同,調用函數的參數每次不同(有規律的遞增或遞減),如果沒有規律也就不能適用遞
Time of Update: 2017-01-19
複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>#define EPSINON 1e-3#define ABS(a) (((a)>0)?(a):(-a)) //?:不支援運算式嵌套#define ZERO(x) ((x)>-EPSINON && (x)<EPSINON)#define MAX(a,b) (((a)&
Time of Update: 2017-01-19
複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>int year, month, day;const int day_30 = 30;const int day_31 = 31;int day_month_2 = 0;char err_flag = 0;void compute(){ printf("輸入年月日(1992-
Time of Update: 2017-01-19
1.普通的寫法複製代碼 代碼如下:#include <stdio.h>int leapyear(int year){ if((year%4==0 && year%100!=0) || year%400==0) return 1; else return 0;}int days(int *day1, int *day2){ int i=0; int *tmp; int diff =
Time of Update: 2017-01-19
複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>int main(){ int i,j,k; int line; int *prev, *next; printf("輸入要查看楊輝三角的行數(大於2):"); scanf("%d",&line); if(line < 2) { printf("行數小於2,Goodbye!\n");
Time of Update: 2017-01-19
複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>#include <time.h>int size = 0;int flag = 0;void output(int *arry){ int i = 0; for(i=0; i<size; i++) { printf("arry[%d]=%d\t",i,arry[i]); if((i+1)
Time of Update: 2017-01-19
(1)設定固定斷點或臨時斷點所謂斷點,是指定程式中的某一行,讓程式運行至該行後暫停運行,使得程式員可以觀察剖析器的運行過程中的情況。這些情況一般包括:①在變數視窗(Varibles)中觀察程式中變數的當前值。程式員觀察這些值的目的是與預期值對比,若與預期值不一致,則此斷點前啟動並執行程式肯定在某個地方有問題,以此可縮小故障範圍。例如以下程式是計算cos(x)並顯示,運行時發現無論x輸入為多少,結果都是0.046414。複製代碼 代碼如下:#include
Time of Update: 2017-01-19
下面是一個C語言的函數和C++的函數驗證了這段話複製代碼 代碼如下:# include<stdio.h>int fun1();int main(){ int a = fun1(3, 4); printf("%d\n", a); return 0;}int fun1(int a, int b){ return a + b;}結果沒有任何問題,輸出結果為7,也即fun()可以聲明fun(int, int)複製代碼 代碼如下:#
Time of Update: 2017-01-19
前置聲明的使用有一定C++開發經驗的朋友可能會遇到這樣的情境:兩個類A與B是強耦合關係,類A要引用B的對象,類B也要引用類A的對象。好的,不難,我的第一直覺讓我寫出這樣的代碼:複製代碼 代碼如下:// A.h#include "B.h"class A{public: A(void); virtual ~A(void);};//A.cpp#include "A.h"A::A(void){}A::~A(void){}//
Time of Update: 2017-01-19
想想我們在遇到多語句分支時是不是首先想到的是 switc case 和 if else if ...這2種方式在編碼方面確實簡單少,但是當分支達到一定數量後,特別是分支內部有嵌套大段代碼或者再嵌套分支,代碼會顯得異常臃腫,十分難以維護,對於if else if 語句過多的分支帶來過多的判定句,勢必會影響效率。3種替代方法簡述:1.使用map,需要構建樹和節點,比數組的方式消耗更多的記憶體,查詢時間複雜度為Log(N),但擴充起來方便。2.使用數組,查詢直接索引定位,
Time of Update: 2017-01-19
在C++中使用sizeof要比C複雜很多,因為C++類中有static靜態變數,virtual虛函數,還有繼承、派生等。sizeof是C語言的一種單目操作符,如C語言的其他動作符++、--等。它並不是函數。sizeof操作符以位元組形式給出了其運算元的儲存大小。sizeof使用形式有三種:sizeof(var_name)或sizeof var_name或sizeof(var_type)。【例1】:(列子中忽略構造及解構函式)複製代碼 代碼如下:class A {