" />

亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++算法系列之中國(guó)農(nóng)歷的算法

 更新時(shí)間:2024年07月01日 15:28:36   作者:吹泡泡的小貓  
這篇文章主要介紹了C++計(jì)算中國(guó)農(nóng)歷的深入淺析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧 

C++算法系列之日歷生成的算法

所謂的“天文算法”,就是利用經(jīng)典力學(xué)定律推導(dǎo)行星運(yùn)轉(zhuǎn)軌道,對(duì)任意時(shí)刻的行星位置進(jìn)行精確計(jì)算,從而獲得某種天文現(xiàn)象發(fā)生時(shí)的時(shí)間,比如日月合朔這一天文現(xiàn)象就是太陽(yáng)和月亮的地心黃經(jīng)(視黃經(jīng))差為0的那一瞬間。能夠計(jì)算任意時(shí)刻行星位置的一套理論就被稱為星歷表,比較著名的星歷表有美國(guó)國(guó)家航空航天局下屬的噴氣推進(jìn)實(shí)驗(yàn)室發(fā)布的DE系列星歷表,還有瑞士天文臺(tái)在DE406基礎(chǔ)上拓展的瑞士星歷表等等。根據(jù)行星運(yùn)行軌道直接計(jì)算行星位置通常不是很方便,更何況大多數(shù)民用天文計(jì)算用不上那么多精確的軌道參數(shù),于是天文學(xué)家在這些星歷表的基礎(chǔ)上推導(dǎo)出了很多可以做簡(jiǎn)便計(jì)算,但是又能保證一定精度的行星運(yùn)行理論,比較著名的有VSOP82/87太陽(yáng)系行星運(yùn)行理論和ELP-2000/82月球運(yùn)行理論,這兩套理論在精度上已經(jīng)很接近DE系列星歷表了。關(guān)于如何應(yīng)用這兩套倫理進(jìn)行天文歷法計(jì)算,請(qǐng)參考“日歷生成算法”系列文章的第三篇《用天文方法計(jì)算二十四節(jié)氣》和第四篇《用天文方法計(jì)算日月合朔》,本文介紹的農(nóng)歷年歷推算是在已經(jīng)通過(guò)天文算法獲得了精確的節(jié)氣時(shí)間和日月合朔時(shí)間的基礎(chǔ)上進(jìn)行的。

中國(guó)的官方紀(jì)時(shí)采用的是中國(guó)公歷(格里歷),因此農(nóng)歷年歷的推導(dǎo)應(yīng)以公歷年的周期為主導(dǎo),附上農(nóng)歷年的信息,也就是說(shuō),年歷以公歷的1月1日為起始,至12月31日結(jié)束,根據(jù)農(nóng)歷歷法推導(dǎo)出的農(nóng)歷日期信息,附加在公歷日期信息上形成雙歷。通常情況下,一個(gè)公歷年周期都不能完整地對(duì)應(yīng)到一個(gè)農(nóng)歷年周期上,二者的偏差也不固定,因此不存在穩(wěn)定的對(duì)應(yīng)關(guān)系,也就是說(shuō),不存在從公歷的日期到農(nóng)歷日期的轉(zhuǎn)換公式,只能根據(jù)農(nóng)歷的歷法規(guī)則推導(dǎo)出農(nóng)歷日期與公歷日期的對(duì)應(yīng)關(guān)系。由農(nóng)歷歷法規(guī)則可知,上一個(gè)公歷年的冬至()所在的朔望月是上一個(gè)農(nóng)歷年的十一月(冬月),所以在進(jìn)行節(jié)氣計(jì)算時(shí),需要計(jì)算包括上一年冬至節(jié)氣在內(nèi)的二十五個(gè)節(jié)氣,才能對(duì)應(yīng)上上一個(gè)農(nóng)歷年的十一月和當(dāng)前農(nóng)歷年的十一月。在計(jì)算與之對(duì)應(yīng)的朔日時(shí),考慮到有閏月的情況,需要從上一年冬至節(jié)氣前的第一個(gè)朔日,連續(xù)計(jì)算15個(gè)朔日才能保證覆蓋兩個(gè)冬至之間的一整年時(shí)間,圖(1)顯示了2011年沒(méi)有閏月的情況下朔日和冬至的關(guān)系:

圖(1)沒(méi)有閏月情況下朔日與冬至節(jié)氣關(guān)系圖

圖中上排數(shù)字是公歷月的編號(hào),黑色圓點(diǎn)代表朔日,黑色三角形代表冬至節(jié)氣。圖(2)顯示了2012年有閏月的情況下朔日和冬至的關(guān)系:

圖(2)有閏月情況下朔日與冬至節(jié)氣關(guān)系圖

通過(guò)計(jì)算得到能夠覆蓋兩個(gè)冬至節(jié)氣的所有朔日時(shí)間后,就可以著手建立公歷日期與農(nóng)歷日期的對(duì)應(yīng)關(guān)系。以圖(1)所示的2011年為例,首先根據(jù)計(jì)算得到的15個(gè)朔日(2011年只會(huì)用到其中的前14個(gè)時(shí)間)時(shí)間,建立與2011年(公歷年)有關(guān)的朔望月關(guān)系表:

表(2)2011年朔望月與公歷日期關(guān)系表

編號(hào)為1和2的兩個(gè)朔日之間的朔望月是十一月,因?yàn)槎凉?jié)氣落在這個(gè)朔望月,其它月的月名依次類推,正月的朔日就是春節(jié)。輸出公歷和農(nóng)歷雙歷時(shí),以月(公歷)為單位,從每月第一天開(kāi)始,依次判斷每一天屬于哪個(gè)朔望月,確定這一天的農(nóng)歷月名,然后比較這一天和這個(gè)朔望月的朔日之間相差幾天,記為農(nóng)歷日期。以2011年1月1日為例,這一天在2010年12月6日(2010年農(nóng)歷十一月的朔日)和2011年1月4日之間(2010年農(nóng)歷十二月的朔日),查表(1)可知對(duì)應(yīng)的農(nóng)歷月是十一月,這一天和2010年12月6日相差26天,因此這一天的農(nóng)歷日期就是“廿七”。再以2011年2月3日(春節(jié))這一天為例,查朔望月表得知2月3日屬于從2月3日開(kāi)始的朔望月,這個(gè)朔望月的月名是正月,而2月3日就是月首,農(nóng)歷日期是初一,正月初一就是春節(jié)。

先來(lái)介紹兩個(gè)函數(shù),這兩個(gè)函數(shù)分別用于計(jì)算節(jié)氣和日月合朔發(fā)生的時(shí)間,函數(shù)算法的具體描述將在“日歷生成算法”系列文章的第三篇《用天文方法計(jì)算二十四節(jié)氣》和第四篇《用天文方法計(jì)算日月合朔》中介紹,此處只是簡(jiǎn)單介紹一下用法。首先是計(jì)算節(jié)氣時(shí)間的函數(shù):

5 double CalculateSolarTerms(int year, int angle);

這個(gè)函數(shù)用于計(jì)算指定的年份(year參數(shù))中,太陽(yáng)在黃道上運(yùn)行(視運(yùn)動(dòng))到指定角度時(shí)的時(shí)間,angle可以設(shè)定節(jié)氣發(fā)生時(shí)的角度,比如CalculateSolarTerms(2011, 270)就是計(jì)算2011年冬至的時(shí)間。這個(gè)函數(shù)返回的時(shí)間類型是儒略日,關(guān)于儒略日的說(shuō)明請(qǐng)參考“日歷生成算法”系列文章的第一篇《中國(guó)公歷(格里歷)》。
接下來(lái)介紹計(jì)算日月合朔時(shí)間的函數(shù):

8 double CalculateMoonShuoJD(double tdJD); 

這個(gè)函數(shù)返回指定時(shí)間附近的朔日時(shí)間,搜索的范圍是tdJD參數(shù)指定時(shí)間的前一天到后29.5305天,tdJD參數(shù)和返回值的時(shí)間類型都是儒略日。

生成指定公歷年份的公歷和農(nóng)歷的雙歷年歷的流程如下:

圖(3)計(jì)算公農(nóng)歷雙歷年歷的流程

GetAllSolarTermsJD()函數(shù)從指定年份的指定節(jié)氣開(kāi)始,連續(xù)計(jì)算25個(gè)節(jié)氣時(shí)間,時(shí)間可以跨年份,內(nèi)部判斷過(guò)冬至節(jié)氣后自動(dòng)轉(zhuǎn)到下一年的節(jié)氣繼續(xù)計(jì)算:

void CChineseCalendar::GetAllSolarTermsJD(int year, int start, double *SolarTerms)
 {
 int i = 0;
 int st = start;
 while(i < 25)
 {
 double jd = CalculateSolarTerms(year, st * 15);
 if(st == WINTER_SOLSTICE)
 {
 year++;
 }
 st = (st + 1) % SOLAR_TERMS_COUNT;
 }
 }

start參數(shù)是節(jié)氣的索引,定義二十四節(jié)氣的索引如下:

const int VERNAL_EQUINOX = 0; // 春分
const int CLEAR_AND_BRIGHT = 1; // 清明
const int GRAIN_RAIN = 2; // 谷雨
const int SUMMER_BEGINS = 3; // 立夏
const int GRAIN_BUDS = 4; // 小滿
const int GRAIN_IN_EAR = 5; // 芒種
const int SUMMER_SOLSTICE = 6; // 夏至
const int SLIGHT_HEAT = 7; // 小暑
const int GREAT_HEAT = 8; // 大暑
const int AUTUMN_BEGINS = 9; // 立秋
const int STOPPING_THE_HEAT = 10; // 處暑
const int WHITE_DEWS = 11; // 白露
const int AUTUMN_EQUINOX = 12; // 秋分
const int COLD_DEWS = 13; // 寒露
const int HOAR_FROST_FALLS = 14; // 霜降
const int WINTER_BEGINS = 15; // 立冬
const int LIGHT_SNOW = 16; // 小雪
const int HEAVY_SNOW = 17; // 大雪
const int WINTER_SOLSTICE = 18; // 冬至
const int SLIGHT_COLD = 19; // 小寒
const int GREAT_COLD = 20; // 大寒
const int SPRING_BEGINS = 21; // 立春
const int THE_RAINS = 22; // 雨水
const int INSECTS_AWAKEN = 23; // 驚蟄

節(jié)氣索引乘以15就是節(jié)氣在黃道上對(duì)應(yīng)的度數(shù)。GetNewMoonJDs()函數(shù)從指定時(shí)間開(kāi)始連續(xù)計(jì)算15個(gè)朔日時(shí)間,從第一個(gè)冬至節(jié)氣前的第一個(gè)朔日開(kāi)始。15個(gè)朔日可以形成14個(gè)完整的朔望月,保證在有閏月的情況下也能包含兩個(gè)冬至節(jié)氣:

 void CChineseCalendar::GetNewMoonJDs(double jd, double *NewMoon)
 {
 for(int i = 0; i < NEW_MOON_CALC_COUNT; i++)
 {
 double shuoJD = CalculateMoonShuoJD(jd);
 NewMoon[i] = shuoJD;

 jd += 29.5; /*轉(zhuǎn)到下一個(gè)最接近朔日的時(shí)間*/
 }
}

BuildAllChnMonthInfo()函數(shù)根據(jù)15個(gè)朔日時(shí)間組成14個(gè)朔望月,根據(jù)相鄰朔日的間隔計(jì)算出農(nóng)歷月天數(shù)用來(lái)判定大小月,并且從“十一月”開(kāi)始依次為每個(gè)朔望月命名(月建名稱):

bool CChineseCalendar::BuildAllChnMonthInfo()
 {
 CHN_MONTH_INFO info; //一年最多可13個(gè)農(nóng)歷月
 int i;
 int yuejian = 11; //采用夏歷建寅,冬至所在月份為農(nóng)歷11月
 for(i = 0; i < (NEW_MOON_CALC_COUNT - 1); i++)
 {
 info.mmonth = i;
 info.mname = (yuejian <= 12) ? yuejian : yuejian - 12;
 info.shuoJD = m_NewMoonJD[i];
 info.nextJD = m_NewMoonJD[i + 1];
 info.mdays = int(info.nextJD + 0.5) - int(info.shuoJD + 0.5);
 info.leap = 0;
 
 CChnMonthInfo cm(&info);
 m_ChnMonthInfo.push_back(cm);
 
 yuejian++;
 }
 
 return (m_ChnMonthInfo.size() == (NEW_MOON_CALC_COUNT - 1));
 }

CalcLeapChnMonth()函數(shù)根據(jù)節(jié)氣和朔日時(shí)間判斷在兩個(gè)冬至節(jié)氣之間的農(nóng)歷年是否有閏月,判斷的依據(jù)就是看第十四個(gè)朔日是否在第二個(gè)冬至節(jié)氣之前,如果第十四個(gè)朔日發(fā)生在第二個(gè)冬至節(jié)氣之前,就說(shuō)明在兩個(gè)冬至節(jié)氣之間發(fā)生了十三次朔日,需要置閏月。因?yàn)檗r(nóng)歷中十二個(gè)中氣屬于哪個(gè)農(nóng)歷月是固定的,因此置閏月的過(guò)程就是依次判斷十二個(gè)中氣是否在對(duì)應(yīng)的農(nóng)歷月中,如果本應(yīng)該屬于某個(gè)農(nóng)歷月的中氣卻沒(méi)有落在這個(gè)農(nóng)歷月中,則這個(gè)農(nóng)歷月就是閏月,需要設(shè)置閏月標(biāo)志,同時(shí)調(diào)整這個(gè)月之后的月名。調(diào)整農(nóng)歷月名的方法就是月名減一,比如原來(lái)是八月就要調(diào)整為七月,這樣就將十三個(gè)月對(duì)應(yīng)上了十二個(gè)月名(其中多出來(lái)的一個(gè)農(nóng)歷月被命名為閏某月)。如果節(jié)氣和朔日發(fā)生在同一天,CalcLeapChnMonth()函數(shù)采用的是民間歷法的規(guī)則,與現(xiàn)行歷法一致:

 void CChineseCalendar::CalcLeapChnMonth()
 {
 assert(m_ChnMonthInfo.size() > 0); /*陰歷月的初始化必須在這個(gè)之前*/
 
 int i;
 
 if(int(m_NewMoonJD[13] + 0.5) <= int(m_SolarTermsJD[24] + 0.5)) //第13月的月末沒(méi)有超過(guò)冬至,說(shuō)明今年需要閏一個(gè)月
 {
 //找到第一個(gè)沒(méi)有中氣的月
 i = 1;
 while(i < (NEW_MOON_CALC_COUNT - 1))
 {
 /*m_NewMoonJD[i + 1]是第i農(nóng)歷月的下一個(gè)月的月首,本該屬于第i月的中氣如果比下一個(gè)月
 的月首還晚,或者與下個(gè)月的月首是同一天(民間歷法),則說(shuō)明第i月沒(méi)有中氣*/
 if(int(m_NewMoonJD[i + 1] + 0.5) <= int(m_SolarTermsJD[2 * i] + 0.5))
  break;
 i++;
 }
 if(i < (NEW_MOON_CALC_COUNT - 1)) /*找到閏月,對(duì)后面的農(nóng)歷月調(diào)整月名*/
 {
 m_ChnMonthInfo[i].SetLeapMonth(true);
 while(i < (NEW_MOON_CALC_COUNT - 1))
 {
 m_ChnMonthInfo[i++].ReIndexMonthName();
 }
 }
 }
 }

從理論上講,本文介紹的算法在精度允許的范圍內(nèi)可以計(jì)算前后幾千年的農(nóng)歷年歷,但是對(duì)古代的農(nóng)歷計(jì)算需要小心。首先是“平朔”和“定朔”的問(wèn)題,唐代以前使用的是平朔方法定月首,本文介紹的計(jì)算方法采用的是“定朔”方法,因此計(jì)算出的年歷與唐代以前的歷史會(huì)不一致。另外,即是在唐代以后采用“定朔”的歷法,因?yàn)楣糯煳挠^測(cè)和計(jì)算受條件限制,可能不夠精確,因此與現(xiàn)在用天文算法計(jì)算出的結(jié)果可能并不一致。所以對(duì)歷史農(nóng)歷的計(jì)算應(yīng)該以歷史事實(shí)為主,天文計(jì)算為輔,當(dāng)計(jì)算與歷史不一致時(shí),要根據(jù)歷史數(shù)據(jù)進(jìn)行校正。Calendar.exe是根據(jù)本文介紹的算法編寫(xiě)的日歷小程序,沒(méi)有太多的功能,主要是為了驗(yàn)證算法,因?yàn)闆](méi)有歷史數(shù)據(jù)用于修正結(jié)果,因此不支持1601年以前的農(nóng)歷計(jì)算(也就是說(shuō)按照天文算法計(jì)算出來(lái)的結(jié)果可能和實(shí)際歷史上的歷法不符)。

圖(5)演示程序的界面

小知識(shí)1:民間歷法和歷理歷法

新中國(guó)成立以后沒(méi)有頒布新的“官方農(nóng)歷歷法”,將歷法和政治分離體現(xiàn)了時(shí)代的進(jìn)步,但是由于沒(méi)有 “官方歷法”,也引起了一些問(wèn)題。比如我國(guó)現(xiàn)在采用的農(nóng)歷歷法是《時(shí)憲歷》,它源于清朝順治年間(公元1645)頒布的《順治歷》,它有兩個(gè)不足之處:一個(gè)是日月合朔和節(jié)氣的時(shí)間以北京當(dāng)?shù)貢r(shí)間為準(zhǔn),也就是東經(jīng)116度25分的當(dāng)?shù)貢r(shí)間,其節(jié)氣和新月的觀察只適用于中原地區(qū)。其它經(jīng)度的地方,因?yàn)闀r(shí)間的關(guān)系,對(duì)導(dǎo)致日月合朔和節(jié)氣時(shí)間的差異導(dǎo)致置閏和月順序各不相同。另一個(gè)不足之處就是日月合朔時(shí)間和節(jié)氣時(shí)間判斷不精確,如果日月合朔時(shí)間和節(jié)氣時(shí)間在同一天,不管具體的時(shí)間是否有先后,一律將此節(jié)氣算做新月中的節(jié)氣,這樣一來(lái),如果這個(gè)節(jié)氣是中氣,就會(huì)影響到閏月的設(shè)置。歷理歷法針對(duì)這兩點(diǎn)進(jìn)行了改進(jìn),對(duì)節(jié)氣時(shí)間和日月合朔時(shí)間統(tǒng)一采用東經(jīng)120度即東八區(qū)標(biāo)準(zhǔn)時(shí),這樣在任何時(shí)區(qū)的節(jié)氣和置閏結(jié)果都是一樣的,以東八區(qū)標(biāo)準(zhǔn)時(shí)為準(zhǔn)。對(duì)于節(jié)氣時(shí)間和日月合朔時(shí)間在同一天的情況,精確計(jì)算到時(shí)、分、秒,只有日月合朔時(shí)間在節(jié)氣時(shí)間之前,這個(gè)節(jié)氣才包含在次月內(nèi)。歷理歷法從理論上講更符合現(xiàn)代天文學(xué)的精確計(jì)算,但是需要注意的是,歷理歷法仍然只是存在于理論上的歷法,我國(guó)現(xiàn)行的農(nóng)歷歷法依然是民間歷法《時(shí)憲歷》或《順治歷》。

小知識(shí)2:通式壽星公式

“通式壽星公式”是前人整理出來(lái)的一個(gè)用于計(jì)算每年立春日期的經(jīng)驗(yàn)公式:

Date = 向下取整(Y * D + C) - L

其中,Y是年份,D的值是0.2422,C是經(jīng)驗(yàn)值,取決于節(jié)氣和年份,對(duì)于21世紀(jì),立春節(jié)氣的C值是4.475,春分節(jié)氣的C值是20.646等等;

L是閏年數(shù),其計(jì)算公式為:

L = 向下取整(Y/4) - 向下取整(Y/100) + 向下取整(Y/400)

用“通式壽星公式”確定2011年立春日期的過(guò)程如下:

L = int(2011/4) – int(2011/100) + int(2011/400) = 502 – 20 + 5 = 487

Date = int(2011×0.2422+4.475)- 487 = 491 – 487 = 4

所以,2011年的立春日期是2月4日。

小知識(shí)3:計(jì)算節(jié)氣和朔日的經(jīng)驗(yàn)公式

以1900年1月0日(星期日)為基準(zhǔn)日,之后的每一天與基準(zhǔn)日的差值稱為“積日”, 1900年1月1日的積日是1,以后的時(shí)間依次類推,則計(jì)算第y年第x個(gè)節(jié)氣的積日公式是:

F = 365.242 * (y – 1900) + 6.2 + 15.22 *x - 1.9 * sin(0.262 * x)

其中x是節(jié)氣的索引,0代表小寒,1代表大寒,其它節(jié)氣按照順序類推。

計(jì)算從1900年開(kāi)始第m個(gè)朔日的公式是:

M = 1.6 + 29.5306 * m + 0.4 * sin(1 - 0.45058 * m)

小知識(shí)4:平朔和定朔

中國(guó)農(nóng)歷的朔望月長(zhǎng)度是平均29.5305天,所以農(nóng)歷月就有大月30天,小月29天之分,從先秦時(shí)期到唐代,農(nóng)歷歷法均是采用大小月輪流交替的方式設(shè)置每個(gè)農(nóng)歷月的天數(shù),只有少數(shù)情況下才出現(xiàn)連續(xù)兩個(gè)大月的情況,采用這種方式的歷法就稱為“平朔”。“平朔”歷法簡(jiǎn)單,但是不能保證日月合朔發(fā)生在初一這一天,有可能是上月的月末一天,也有可能是本月初二。南北朝時(shí)期,一種新的歷法被提出來(lái),這種歷法嚴(yán)格按照日月合朔為月初制定農(nóng)歷月,采用這種方式的歷法就稱為“定朔”。“定朔”歷法嚴(yán)格將日月合朔時(shí)間確定月初,因?yàn)樵虑蚬D(zhuǎn)是橢圓軌道,速度并不是均勻,所以會(huì)發(fā)生連續(xù)多個(gè)大月或連續(xù)多個(gè)小月的情況,導(dǎo)致“定朔”歷法推廣遇到很大的阻力,直到唐代,中國(guó)歷法才全面棄用“平朔”,改用“定朔”。

小知識(shí)5:正月初一和立春節(jié)氣

立春是二十四節(jié)氣之首,所以古代民間都是在“立春”這一天過(guò)節(jié),相當(dāng)于現(xiàn)代的春節(jié)(中國(guó)古代即是節(jié)氣也是節(jié)日的情況很多,比如清明、冬至等等)。農(nóng)歷年從正月初一開(kāi)始沒(méi)有爭(zhēng)議,但是農(nóng)歷生肖年從何時(shí)開(kāi)始卻一直有爭(zhēng)議,目前多數(shù)人都認(rèn)為“立春”節(jié)氣是農(nóng)歷生肖年的開(kāi)始。因?yàn)樵谥袊?guó)古代歷法中,十二生肖的計(jì)算與天干地支有很大關(guān)系,所以在“論天干地支、計(jì)算廿四節(jié)氣”的情況下,“立春”節(jié)氣應(yīng)該是新生肖的開(kāi)始。對(duì)于普通老百姓來(lái)說(shuō),習(xí)慣于認(rèn)為正月初一是生肖年的開(kāi)始,因此,正月初一和“立春”節(jié)氣之間出生的小孩,在確定屬相的時(shí)候就有點(diǎn)麻煩了。屬龍還是屬蛇?這是個(gè)問(wèn)題。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++關(guān)鍵字volatile學(xué)習(xí)筆記

    C++關(guān)鍵字volatile學(xué)習(xí)筆記

    這篇文章主要為大家介紹了C++關(guān)鍵字volatile學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Recommended C Style and Coding Standards中文翻譯版

    Recommended C Style and Coding Standards中文翻譯版

    本文翻譯自Recommended C Style and Coding Standards(C語(yǔ)言編碼風(fēng)格和標(biāo)準(zhǔn)),需要的朋友可以參考下
    2014-04-04
  • CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    很多開(kāi)發(fā)者不清楚這兩者之間的關(guān)系,他們隨意選一個(gè)函數(shù)來(lái)用,發(fā)現(xiàn)也沒(méi)有什么大問(wèn)題,于是就忙于解決更為緊迫的任務(wù)去了。等到有一天忽然發(fā)現(xiàn)一個(gè)程序運(yùn)行時(shí)間很長(zhǎng)的時(shí)候會(huì)有細(xì)微的內(nèi)存泄露,開(kāi)發(fā)者絕對(duì)不會(huì)想到是因?yàn)檫@兩套函數(shù)用混的結(jié)果
    2013-09-09
  • C語(yǔ)言數(shù)組實(shí)現(xiàn)打磚塊游戲

    C語(yǔ)言數(shù)組實(shí)現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言數(shù)組實(shí)現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++字符數(shù)組、字符數(shù)組指針和string類

    C++字符數(shù)組、字符數(shù)組指針和string類

    這篇文章主要介紹了C++字符數(shù)組、字符數(shù)組指針和string類,string是一個(gè)類而不是基本數(shù)據(jù)類型,數(shù)組不含有處理函數(shù),下面更多詳細(xì)內(nèi)容,需要的小伙伴可以參考下面文章
    2022-03-03
  • C語(yǔ)言中宏定義的妙用方法

    C語(yǔ)言中宏定義的妙用方法

    今天小編就為大家分享一篇關(guān)于C語(yǔ)言中宏定義的妙用方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 講解C++編程中Address-of運(yùn)算符&的作用及用法

    講解C++編程中Address-of運(yùn)算符&的作用及用法

    這篇文章主要介紹了C++編程中Address-of運(yùn)算符&的作用及用法,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01
  • Qt基礎(chǔ)開(kāi)發(fā)之QString與QByteArray詳細(xì)用法與區(qū)別及QString QByteArray互轉(zhuǎn)

    Qt基礎(chǔ)開(kāi)發(fā)之QString與QByteArray詳細(xì)用法與區(qū)別及QString QByteArray互轉(zhuǎn)

    這篇文章主要介紹了Qt基礎(chǔ)開(kāi)發(fā)之QString與QByteArray詳細(xì)用法與區(qū)別及QString QByteArray互轉(zhuǎn),需要的朋友可以參考下
    2020-03-03
  • C++實(shí)現(xiàn)LeetCode(52.N皇后問(wèn)題之二)

    C++實(shí)現(xiàn)LeetCode(52.N皇后問(wèn)題之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(52.N皇后問(wèn)題之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語(yǔ)言單鏈表實(shí)現(xiàn)多項(xiàng)式相加

    C語(yǔ)言單鏈表實(shí)現(xiàn)多項(xiàng)式相加

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言單鏈表實(shí)現(xiàn)多項(xiàng)式相加,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評(píng)論