yuu_nkjm blog
2012-02-11(Sat) [長年日記] 編集
[Linux] 英語版キーボードのキーレイアウト
レスキューモードなどで起動すると,キーマップが英語のものになってしまうことがある.ダブルクォーテーション出したいのに,@が出るのはよくあること.
[ツッコミを入れる]
2012-02-10(Fri) [長年日記] 編集
[Programming][Java][C/C++] 値渡しと参照渡し,参照とポインタ,直接参照と間接参照
値渡しと参照渡し,参照とポインタ
値渡しと参照渡し (と参照の値渡し) - 予定は未定Blog版が分かりやすかった.
関連ページ
- 値渡しとは (pass by value, call by value) あたいわたし: - IT用語辞典バイナリ
- 参照渡しとは (call by reference) さんしょうわたし: - IT用語辞典バイナリ
- 値渡しと参照渡し (と参照の値渡し) - 予定は未定Blog版
- 「参照渡し」と「参照の値渡し」の差 - 神様なんて信じない僕らのために
- Javascript のスコープとか参照とかクロージャとか - EAGLE 雑記
参照とポインタ,直接参照と間接参照
Javaの参照の値渡しと参照渡し
Javaでは「参照の値渡し」と「参照渡し」を混同しやすい.下記の1番上のページが参考になると思う.
- 値渡しと参照渡し (と参照の値渡し) - 予定は未定Blog版
- 疑問メモ: 値渡し、参照渡し、Java、C - 虎塚
- メソッドの引数の参照渡しはできますか? - Java Solution - @IT
以下,草稿.
#include
void changeValueCallbyRef(int& val) {
// 実引数として与えられた変数をそのまま操作できるイメージ.
// valはaそのもの.エイリアスとも呼ばれる.
printf("val=%d, pointer of val=%d\n",val,&val);
val = 999;
}
void changeValuePointer0(int* val){
// 変数valが作成され,aへのポインタが格納される.
printf("val=%d, pointer of val=%d\n",val,&val);
// 「ポインタ変数」valに代入しても,aに影響はない
int b = 111;
val = &b;
}
void changeValuePointer1(int* val){
//「ポインタ変数」の参照先に値を格納する.
*val = 555;
//Javaだと,参照先の値そのものを変更することはできない.
//Javaでは, 参照先の値やオブジェクトにアクセスすることができる.
//ここの例で行くと,Javaでは,*valにアクセスはできるが,
//*valに代入することはできないイメージ.
}
int main(void){
int a = 10;
int* a_p = &a;
printf("a=%d, pointer of a=%d\n",a,&a);
printf("a_p=%d, pointer of a_p=%d\n",a_p,&a_p);
changeValueCallbyRef(a);
printf("a=%d, pointer of a=%d\n",a,&a);
changeValuePointer0(&a);
printf("a=%d, pointer of a=%d\n",a,&a);
changeValuePointer1(&a);
printf("a=%d, pointer of a=%d\n",a,&a);
}
[ツッコミを入れる]
2012-02-09(Thu) [長年日記] 編集
[openSUSE][Linux] ソースやRPMインストールしたアプリケーションの管理
パッケージ管理はパッケージ管理システムに任せきりたいと思っているので,openSUSE上では原則yastを使ってインストールをしている.(ちなみに,設定もできるだけyast中心でやっている.)しかし,インストールしたいrpmがどのレポジトリにもないということもある.そういう時は,自前でソースをビルドしてインストールしないといけない.しかし,インストールをすることで,他モジュールが使用するライブラリを書きかえてしまったり,アンインストールができなくなったりするのは困る.
ちょっと調べてみたところ,paco - a source code pacKAGE oRGANIZER for Unix/LinuxとStow - GNU Project - Free Software Foundationが良さそう.前者はちょっと使ったことあったけど,ソースからのビルドってそんなにやることじゃないから,あんま分からん.
rpmから入れる時はrpmコマンドを叩くのではなく,yastコマンドでインストールした方が良さそう.GUIだとrpmをダブルクリックするとYaSTが立ち上がる様だ.コマンドラインの場合は,以下のコマンドでOK.
yast2 -i /path_to_rpm_file/filename.rpm.
関連ページ
[ツッコミを入れる]