言語別比較 †
適当。
C/C++結構忘れてるなぁ・・・
書いてて、なんか微妙な感じのものもあるけど気にしないw
型・宣言 †
- PHPの型
- PHPは型を自動判定します。明示的にキャストすることで、型変換が可能です。
- JavaScriptの型
| C | C++ | Java | PHP | JavaScript | C# | 備考 |
真偽値 | | | boolean | bool | | bool | |
| | Boolean | | | | ラップクラス |
キャラ型 | char | char | char | | | char | |
| | Character | | | | ラップクラス |
整数型 | | | byte | | | byte | |
| | Byte | | | | ラップクラス |
| | | | | sbyte | |
| | short | | | short | |
| | Short | | | | ラップクラス |
unsigned short | unsigned short | | | | ushort | |
int | int | int | integer | | int | |
| | Integer | | | | ラップクラス |
unsigned int | unsigned int | | | | uint | |
long | long | long | | | long | |
| | Long | | | | ラップクラス |
unsigned long | unsigned long | | | | ulong | |
実数型 | float | float | float | float | | float | |
| | Float | | | | ラップクラス |
double | double | double | | | double | |
| | Double | | | | ラップクラス |
| | | | | decimal | |
| | Decimal | | | | |
文字列 | | | String | string | | string | C++に関して言えばSTLのstringがある。*1 |
ポインタ | 型* 変数 | 型* 変数 | | | | | Javaはポインタはない*2 |
参照 | &変数 | &変数 | | | | | Javaは参照渡しになる*3 |
列挙型 | enum | enum | enum | | | | Javaのenumはよく言えば拡張性が高い |
構造体 | struct | struct | | | | | ・Javaには構造体がない。 ・C++の構造体にはメソッドを宣言できる |
配列 | 型[] | 型[] | 型[] | array | Array | | |
null | 0 | 0 | null | NULL | null | | |
演算 †
| C | C++ | Java | PHP | JavaScript | C# | 備考 |
加算 | + | + | + | + | + | + | |
減算 | - | - | - | - | - | - | |
乗算 | * | * | * | * | * | * | |
余算 | / | / | / | / | / | / | |
余り | % | % | % | % | % | % | |
インクリメント | ++ | ++ | ++ | ++ | ++ | ++ | 変数の前か後ろで演算のタイミングが変わります。 |
ディクリメント | -- | -- | -- | -- | -- | -- | 変数の前か後ろで演算のタイミングが変わります。 |
文字列結合 | strcat | strcat | + | . | + | + | Javaでは+演算子での文字列結合は推奨されない*4 |
代入演算子 †
| C | C++ | Java | PHP | JavaScript | C# | 備考 |
代入演算子 | = | = | = | = | = | = | |
+= | += | += | += | += | += | |
| | | | .= | | |
-= | -= | -= | -= | -= | -= | |
*= | *= | *= | *= | *= | *= | |
/= | /= | /= | /= | /= | /= | |
%= | %= | %= | %= | %= | %= | |
&= | &= | &= | &= | &= | &= | |
|= | |= | |= | |= | |= | |= | |
^= | ^= | ^= | ^= | ^= | ^= | |
<<= | <<= | <<= | <<= | <<= | <<= | |
>>= | >>= | >>= | >>= | >>= | >>= | |
| | | >>>= | | | |
比較演算子 †
| C | C++ | Java | PHP | JavaScript | C# | 備考 |
比較演算子 | == | == | == | == | == | == | |
| | | === | | | |
< | < | < | < | < | < | |
> | > | > | > | > | > | |
<= | <= | <= | <= | <= | <= | |
>= | >= | >= | >= | >= | >= | |
!= | != | != | != | != | != | |
| | | <> | | | |
| | | !== | | | |
&& | && | && | && | && | && | |
|| | || | || | || | || | || | |
文字列比較 | strcmp() | strcmp() | equals() | strcmp() | == | == | |
| | | | | CompareTo() | |
ビット演算 †
| C | C++ | Java | PHP | JavaScript | C# | 備考 |
ビットシフト | >> | >> | >> | >> | >> | >> | |
<< | << | << | << | << | << | |
| | >>> | | >>> | | |
論理和 | 値1|値2 | 値1|値2 | 値1|値2 | 値1|値2 | 値1|値2 | 値1|値2 | |
論理積 | 値1&値2 | 値1&値2 | 値1&値2 | 値1&値2 | 値1&値2 | 値1&値2 | |
排他的論理和 | 値1^値2 | 値1^値2 | 値1^値2 | 値1^値2 | 値1^値2 | 値1^値2 | |
否定 | ~値 | ~値 | ~値 | ~値 | ~値 | ~値 | |
生成と解放 †
| C | C++ | Java | PHP | JavaScript | C# | 備考 |
確保 | malloc() | new 型 | new 型 | new 型 | new 型 | | ・malloc()はC++でも使用可能。 ただし、コンストラクタは呼び出されないので注意。 |
解放 | release() | delete | | | | | ・release()はC++でも使用可能。 ただし、デストラクタは呼び出されないので注意。 ・JavaはGCにより自動解放 |