C 語言中的一些小技巧

2021-04-07 06:36:06 字數 1381 閱讀 5157

//----1,2,3為利用c++完成實現類似c的實現

1。string 物件轉為c風格的字串

2。c++中實現讀取一行和設定輸出寬度

3。c++中設定輸出的精度

4。new的另類用法

5。申請和釋放2維或3維陣列的寫法和示例

1.string::c_str()

int len=strlen(a.c_str()); //equeal to the bellow  轉化為c格式

2。getline和設定寬度setw

#include

cout<3.c++ 精度問題

float a=2.000030;

cout.setf(ios::fixed);

cout.precision(4);     //輸出4位有效數字

4.new 新用法:在給定的位置動態建立物件。

char a[10];

然後想在位址a 開始的記憶體中構造乙個 x 型別的物件.

x* px = new (a) x ();

它不申請記憶體. 所以這個x型別的物件你用完了不要delete px;

只要顯式呼叫它的析構函式:px->x::~x();

5.申請與釋放2至3維陣列的函式

template

inline void intialize2darray(t **&***, long rows, long cols)

{long i, j;

for (i=0; i

void create2darray(t **&***, long rows, long cols) //add  '&'

{*** = new t *[rows];

for (long i=0; i

void delete2darray(t **&***, long rows)

{for(long i=0; i

void create3darray(t ***&***, long n1, long n2, long n3)

{*** = new t **[n1];

for (long i=0; i

void delete3darray(t ***&***, long n1, long n2)

{for (long i=0; i

舉例:使用3維陣列

int n1 = 100;

int n2 = 100;

int n3 = 100;

float ***array_3d;

create3darray(array_3d, n1, n2, n3);

...//use the 3d array in form "array_3d[i][j][k]"

delete3darray(array_3d, n1, n2);

C 一些小技巧

這裡講解一些簡單的小方法,希望在開發中能用到提高開發速度。有點時候需要對兩個引數操作,這樣用返回值實現其來就複雜了。要明白引用傳遞,對於值型別來說 修飾符ref修飾。在寫方法時,有時常為引數個數發愁。例如有的引數希望如果呼叫傳值了就用所串的值,如果沒有傳值就不處理它。這裡有道乙個修飾符 params...

C 一些小技巧

在c 實現類似typedef的所有功能 typedef這個關鍵字,是比較好用的東西,因為有時候我們需要使用一些別名來幫助我們記憶某些結構體或者類的共用。個人覺得這是c與c 唯一能吸引我的東西 為了能夠實現這個想法,我們可以使用下列方法。1.使用using語句進行別名,這個方法適合針對結構體。因為很多...

C C語言中的一些小題

判斷是不是閏年 inty printf 請輸入年份 scanf d y inta sizeof y if y 4 0 y 100 0 y 400 0 if y 4 y 100 y 400 else 將輸入的三個數從小到大輸出 inta,b,c,max printf 請輸入三個數 scanf d d ...