Time of Update: 2018-07-29
什麼是位元運算 位元運算符按二進位進行運算,這些運算子只能用於整數類型的操作。如:char,short,int,long 通過位元運算符來擷取高位值和低位值 int a=0x1234; int high,low; high = (a>>8) &0x00ff; low = a & 0x00ff; 左移運算子和右移運算子(<<和>>)
Time of Update: 2018-07-29
什麼是指向函數的指標 函數指標是指向函數的指標變數,不是指向對象的指標。函數指標本身應該是“指標變數”; “在C語言中,函數本身不是變數,但可以定義指向函數的指標,這種指標可以被賦值、存放於數組之中,傳遞給函數及作為函數的傳回值等” --《The C Programming Language Second Edition》 一個函數在編譯的時候被分配一個入口地址,這個入口地址就稱為函數指標。就一個函數來說,他做兩件事,1、調用它。2、取得他的地址。
Time of Update: 2018-07-29
#include<stdio.h>#include<stdlib.h>#define N sizeof(stacknode)//結點所佔位元組數 N//定義結構體typedef int datatype;typedef struct stacknode{datatype data;struct stacknode *next;}stacknode;//定義棧頂typedef struct {stacknode *top;int count;//計數用}linkstack;
Time of Update: 2018-07-29
本文的cl指的是Visual studio 2010中的的C++語言編譯器,g++指的是g++ 4.9編譯器。getline在cl中指的是擷取的一行中沒帶”\n”;而g++中的getline指的是擷取的一行中帶”\n”。下面詳述我為什麼注意到這個問題及測試不同平台的代碼。 1 問題產生 我按照書《C++ Primer》1中11.3.6節中a word transformation map程式時發現運行結果不對,我採用的是g++ 4.9.2編譯器。代碼如下: // A word
Time of Update: 2018-07-29
block是帶有自動變數值的匿名函數。 1、函數指標是對一個函數地址的引用,這個函數在編譯的時候就已經確定了。而block是一個函數對象,是在程式運行過程中產生的。在一個範圍中產生的block對象分配在棧(stack)上,和其他所有分配在棧上的對象一樣,離開這個範圍,就不存在了。 2、blocks是inline的,並且它對局部變數是唯讀。如果要修改就要加關鍵字:__block (注意,是兩個底線)。
Time of Update: 2018-07-29
計算三角形面積 時間限制: 1000 ms 記憶體限制: 65536 KB 提交數: 1813 通過數: 622 【題目描述】 平面上有一個三角形,它的三個頂點座標分別為(x1, y1), (x2, y2), (x3, y3),那麼請問這個三角形的面積是多少,精確到小數點後兩位。 【輸入】
Time of Update: 2018-07-29
pthread_exit()函數可以直接線上程函數內部調用結束這個線程。 開始還想初始化一個pthread_t thread_fd[MAX]數組來儲存開啟的線程,然後用一個棧儲存那些未分配的數組元素(thread_fd[index]=0)的index, 伺服器端: #include<stdlib.h> 8 #include<pthread.h> 9 #include<sys/socket.h> 10
Time of Update: 2018-07-29
//字串的拷貝 char* Strcpy(char* strDest, const char* strSrc) { if(strDest== NULL || strSrc == NULL) { returnNULL; } if(strDest== strSrc) {
Time of Update: 2018-07-29
C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Time of Update: 2018-07-29
測試代碼: // test.cpp : 定義控制台應用程式的進入點。//#include "stdafx.h"#include <cstdlib>#include <new>#include <iostream>using namespace std;class test{public:int a;double x;test(int i,double m):a(i),x(m){printf("creating
Time of Update: 2018-07-29
1)形參 形參顧名思義就是形式上的參數,不是實際的參數,它代替實際傳入方法的值。在方法體代碼中代表了值本身參與運算。形參定義於參數中,它不同於方法體內局部變數,因為是一個變數,在它的範圍內不允許存在一個同名的局部變數,不管他們的類型是否相同,都是不允許出現同名的。 看下面的程式碼範例: //這其中的strName就是一個形參也是一個變數,不允許出現同名的局部變數 public void SayHelloTo(string strName) {
Time of Update: 2018-07-29
Tuple是返回多個參數,C# 4.0引入 最多支援8個參數,第八個參數是Tuple,意思就是參數多於8個就開始嵌套調用了 一個函數返回多個類型,這樣就不在用out , ref等輸出輸入參數了,可以直接定義一個tuple類型就可以了。非常方便。 // // 摘要: // Creates a new 2-tuple, or pair. // // 參數: // item1: //
Time of Update: 2018-07-29
初到北京,適應了一下,好久學習了(大概一周多),重新開始學學。 嚴蔚敏的資料結構(C語言版),第一個介紹的資料結構是一個三元結構,她命名為Triple,她用類C偽碼描述的。我自己用C++實現了一下。這裡想說說感受。先看我寫的原始碼: #include <iostream> #include <cassert> using namespace std; template
Time of Update: 2018-07-29
// poker.c// day05//// 一個撲克牌產生程式:運行如下:// 請輸入你要的張數:5// 程式輸出:H5、H6、H7、H8、H9(Spade(黑桃)、Club(梅花)、Heart(紅桃)、Diamond(方塊))// 建議:char suit[4] = {'S','D','C','H'}// char rank[13] = {'2','3','4','5','6','7','8','9','T','J','Q','K','A'};// Created by
Time of Update: 2018-07-29
C#讀寫CSV,一般情況下根據分隔字元(最常用的是逗號分隔字元)自動切分 但是特殊情況下,如表中有分隔字元的語句,需要特殊解析 對應的常值內容: using System;using System.Collections.Generic;using System.IO;using System.Text;namespace ReadWriteCsv{ /// <summary> /// Class to
Time of Update: 2018-07-29
迴圈隊列是為了充分利用記憶體,進行資料操作的一種基本演算法。具體實現方式可劃分為:鏈式隊列和靜態隊列,這裡所謂的靜態是指在一片連續的記憶體地區進行資料操作。本文只講述靜態隊列,也是最簡單的實現方式,鏈式隊列以及鏈表的實現內容請參見我的其它博文。以下靜態迴圈隊列簡稱為迴圈隊列。 一、迴圈隊列的特點及要素 <1> 先進先出(FIFO); <2> 首尾元素 front 和 rear 的數值; <3> 隊列操作:
Time of Update: 2018-07-29
1、 聲明外部變數 現代編譯器一般採用按檔案編譯的方式,因此在編譯時間,各個檔案中定義的全域變數是 互相透明的,也就是說,在編譯時間,全域變數的可見域限制在檔案內部。下面舉一個簡單的例子。建立一個工程,裡面含有A.cpp和B.cpp兩個簡單的C++源檔案: //A.cpp int i;
Time of Update: 2018-07-29
以下四個函數編譯器會協助自動產生,1、default建構函式 2、copy建構函式 3、賦值建構函式 4、解構函式 但是如果你顯示聲明了一個建構函式,default建構函式將不會被自動產生.這樣你就不能再使用default建構函式了。
Time of Update: 2018-07-29
C++中的函數重載大家並不陌生,也經常使用。這篇博文首先簡單介紹一下重載的規則與調用匹配,然後介紹一下重載的底層原理,最後再介紹一下 extern “C”的使用。 1. 重載規則與調用匹配 1.1 重載規則 首先來看下函數的重載規則,這個比較簡單,如下: 函數名要相同。 參數個數不同,參數的類型不同,參數順序不同,均可構成重載。 傳回值類型不同則不可以構成重載。 如下: void func(int a); //
Time of Update: 2018-07-29
C++中一般建立對象,拷貝或賦值的方式有建構函式,拷貝建構函式,賦值函數這三種方法。下面就詳細比較下三者之間的區別以及它們的具體實現 1.建構函式 建構函式是一種特殊的類成員函數,是當建立一個類的對象時,它被調用來對類的資料成員進行初始化和分配記憶體。(建構函式的命名必須和類名完全相同) 首先說一下一個C++的空類,編譯器會加入哪些預設的成員函數 ·預設建構函式和拷貝建構函式 ·解構函式 ·賦值函數(賦值運算子)