ラベル C++ の投稿を表示しています。 すべての投稿を表示
ラベル C++ の投稿を表示しています。 すべての投稿を表示

2009年5月30日土曜日

C:配列のポインタの挙動1

#include

int main(void){
char str[] = "ace";
char *p_str;
p_str = str;

printf("%c\n",*(p_str+1)); //c
printf("%c\n",(*p_str+1)); //b 配列str[0]のchar型変数に1を加算
return 0;
}

2009年5月26日火曜日

C:文字数のカウント

int ln;
char *str ="test";

for(ln=0;*str != '\0' ; str++,ln++);

printf("%sの文字数は\n",str);
printf("%d文字\n",ln);

2009年5月3日日曜日

C:関数ポインタ

#include <stdio.h>

void func(char *);
void test(void (*)(char *) );
int main() {

test(func);
return 0;
}

void func(char *str) {
printf("%s",str);
}
void test(void (*fc)(char *)) {
(*fc)("testfunc\n");
}

2009年4月25日土曜日

C:ビットのonとoff

tmpのionまたはioffビットをonまたはoffする

int biton(int tmp,int ion){
tmp = tmp | (1 << ion);
return tmp;
}

int bitoff(int tmp,int ioff){
tmp = tmp & ~(1 << ioff);
return tmp;
}

C:10進数を2進数で表示2

32ビット表示
int number = 10;
int i;

for(i = 31;i>=0;i--){
printf("%c",((number >> i) & 1 ) + '0');
}

printf("\n\n");

2009年3月28日土曜日

C : 10進数を2進数で表示

*普通
#include <stdio.h>
int main(void){
int num = 255;
char num2[9];
int i = 0;
while(num > 0){
if(num % 2 == 1){
num2[i] = '1';
}else{
num2[i] = '0';
}
num = num / 2;
i++;
}
while(i>0){
i--;
printf("%c",num2[i]);
}
return 0;
}
*reallocで可変長配列
#include <stdio.h>
#include <stdlib.h>
int main(void){
int num = 255;
char *num2 = NULL;
int i = 0;
while(num > 0){
num2 = realloc(num2, sizeof(char) * (i + 1));
if(num % 2 == 1){
num2[i] = '1';
}else{
num2[i] = '0';
}
num = num / 2;
i++;
}
while(i>0){
i--;
printf("%c",num2[i]);
}
return 0;
}

2008年11月17日月曜日

ポインタを含む宣言子の解釈

char *( *(*var)() )[10];
これをどう解釈するかですが、

1. 識別子を探す。この場合はvarのみ。
次に修飾子を展開していく。
2. (*var):varはポインタ。
3. (*var)():関数を指すポインタ。(( ) > *の優先順位)
4. *(*var)():戻り値はポインタ。
5. ( *(*var)() )[10]:ポインタは要素10の配列を指す。([ ] > *の優先順位)
6. *( *(*var)() )[10]:配列の要素はポインタ。
7. char *( *(*var)())[10]:ポインタはchar型を指す。

http://www5d.biglobe.ne.jp/~hetare/tips/pointer.html

2008年10月26日日曜日

Borland C++ Compiler 5.5インストール

http://cc.codegear.com/free/cppbuilder

環境変数
c:\Borland\Bcc55\bin

c:\Borland\Bcc55\binフォルダに

bcc32.cfg
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"

ilink32.cfg
-L"c:\Borland\Bcc55\lib"

を作成。

コンパイラオプション
ファイル名をhoge.cgiで保存
bcc32 -ehoge.cgi piyo.cpp

http://www.geocities.jp/bleis_tift/cpp/option.html