正直理解出来るのに時間掛かりそうです。
ここまでなんとかかんとかやってきましたが、これで躓く人が多いといろんな場所で見かけますし、第一メモリなんてPCのスペックの一部としてしか考えたことなかったですし…
アドレス?メールの?そんな感じです。
それでもこれを越えたら良いことはありそうな予感。
私らすとさん、今ポインタ変数の前にいるの…
-
超絶右留斗羅天才プログラマー
- 記事: 44
- 登録日時: 12年前
Re: 私らすとさん、今ポインタ変数の前にいるの…
自分がポインタを覚えようと思ったきっかけは、自作ゲームの処理速度がやたら重たくて、どうしても軽くしたいってなった時に、
ポインタの利点についてあれこれ学びましたね(*´▽`*)
ポインタの利点についてあれこれ学びましたね(*´▽`*)
Re: 私らすとさん、今ポインタ変数の前にいるの…
ポインタよりも僕はwhileループのほうが躓きましたね。
真のときに抜けるんだったか偽のときに抜けるんだったかみたいな、
ややこしいですよね
真のときに抜けるんだったか偽のときに抜けるんだったかみたいな、
ややこしいですよね
Re: 私らすとさん、今ポインタ変数の前にいるの…
超絶さん
名前略してすみません、コメントありがとうございます。
何の役にたつかわかればモチベーションも上がりそうです。助かります。
処理速度ですか…かなり重要になりそうですね。
腰を据えてじっくりやっていきたいと思います。
名前略してすみません、コメントありがとうございます。
何の役にたつかわかればモチベーションも上がりそうです。助かります。
処理速度ですか…かなり重要になりそうですね。
腰を据えてじっくりやっていきたいと思います。
Re: 私らすとさん、今ポインタ変数の前にいるの…
せんちゃさん
コメントありがとうございます。
While 等の条件式はわからなくなってしまいますよね。
比較の式は特に苦手で使いはじめはそれっぽいのを総当たりしてました(笑)
コメントありがとうございます。
While 等の条件式はわからなくなってしまいますよね。
比較の式は特に苦手で使いはじめはそれっぽいのを総当たりしてました(笑)
Re: 私らすとさん、今ポインタ変数の前にいるの…
以下が理解できるようならひとまずokかな?
実行結果:
#include
// ポインタ変数を理解するとこんなコードをかけるようになりますが…
void test_strncpy(char *dst, const char *src, int n)
{
char *dp = NULL;
const char *sp = NULL;
int c = 0;
if ( (dst == NULL) || (src == NULL) ) return;
for ( c = 0, dp = dst, sp = src; (*sp) && c < n-1; *dp++ = *sp++, c++ );
*dp = '\0'; // 最後にヌル文字
}
int main(void)
{
char abc[256] = {0}; // 255バイト+ヌル文字分
const char *sz = "私らすとさん、今ポインタ変数の前にいるの。";
test_strncpy(abc, sz, 6 + 1);
printf("6バイト分:%s\n", abc);
test_strncpy(abc, sz, 255 + 1);
printf("255バイト分:%s\n", abc);
}
最後に編集したユーザー へにっくす on 2013年6月21日(金) 05:33 [ 編集 6 回目 ]
Re: 私らすとさん、今ポインタ変数の前にいるの…
へにっくすさん
コメントありがとうございます。
まだいまのところ全くわかっておりません…
アスタリスクが付く場合と付かない場合で混乱してます。
指標になるような課題をいただけるとか本当に感謝します!
このコメントは何度も読み返させていただきます、ありがとうございます。
コメントありがとうございます。
まだいまのところ全くわかっておりません…
アスタリスクが付く場合と付かない場合で混乱してます。
指標になるような課題をいただけるとか本当に感謝します!
このコメントは何度も読み返させていただきます、ありがとうございます。
- Hiragi(GKUTH)
- 記事: 167
- 登録日時: 15年前
Re: 私らすとさん、今ポインタ変数の前にいるの…
ポインタ?あぁそいつなら俺の隣にいるよ、当時の俺は理解するのに挫折を含めて数年かかったよ、いやーほんとにメモリ内のアドレスと表す値、なんて
面倒な機能つけたなとは思った、でも使えると結構使えるので覚えてみて損はないはず!
へにっくすさんのあのソースは私らすとさん...の文字列を6バイト分と255バイト分だけ表示してるんだと思う
6バイトで三文字しか表示できないって言うことは一文字2バイトってこと(最後以外で)、
あとは配列要素に足し算で+1がその型のサイズを表すとか・・・とりあえず理解するのに死にそうになるのでゆっくりでもいいから理解していくといいと思います、
まずはもっと簡単なものから理解して言ったらいいと思います!
追記:
なんかへにっくすさんマニアックな書き方してるような気がする・・・for内に処理書いたことなんて無いなぁ・・・
面倒な機能つけたなとは思った、でも使えると結構使えるので覚えてみて損はないはず!
へにっくすさんのあのソースは私らすとさん...の文字列を6バイト分と255バイト分だけ表示してるんだと思う
6バイトで三文字しか表示できないって言うことは一文字2バイトってこと(最後以外で)、
あとは配列要素に足し算で+1がその型のサイズを表すとか・・・とりあえず理解するのに死にそうになるのでゆっくりでもいいから理解していくといいと思います、
まずはもっと簡単なものから理解して言ったらいいと思います!
追記:
なんかへにっくすさんマニアックな書き方してるような気がする・・・for内に処理書いたことなんて無いなぁ・・・
最後に編集したユーザー Hiragi(GKUTH) on 2013年6月21日(金) 19:56 [ 編集 1 回目 ]
Re: 私らすとさん、今ポインタ変数の前にいるの…
ということはあなたの斜め前に私が…
コメントと解説ありがとうございます。
確かにかなり難航しています。イメージはわきますが、実際の書き方で悩みます。特に配列の場合になると…
マルチバイト文字はまだ全く手付かずなので
噛み砕きながらゆっくり理解を深めていきたいと思います。
コメントと解説ありがとうございます。
確かにかなり難航しています。イメージはわきますが、実際の書き方で悩みます。特に配列の場合になると…
マルチバイト文字はまだ全く手付かずなので
噛み砕きながらゆっくり理解を深めていきたいと思います。