配列とポインタ

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
研修生

配列とポインタ

#1

投稿記事 by 研修生 » 16年前

すいません、ポインタについて理解がおぼつかない感じで少しご質問させていただきます。
char str[20]="HELLO";
for(int i=0;str;i++){
  str=tolower(str);
}


という関数をポインタに書き換えたものを教えて下さい。
配列はわかりやすいんですがポインタはいま1つで・・
お手数ですがお願いします。何回かポインタについて質問させてもらってるんですけど
中々理解できなくて1つ見本を見せてもらったほうがいいと思いました。

初級者

Re:配列とポインタ

#2

投稿記事 by 初級者 » 16年前

書かれたコードは関数の形をとっていません。

書かれた文が関数の中にどのように存在しているかと、
その関数をどのように呼び出しているかを含む、
想定されている書き換え前のコードをご提示いただけますか?

march3

Re:配列とポインタ

#3

投稿記事 by march3 » 16年前

こういうこと?
char str[20]="HELLO";
char *p = str;
for(; *p ;p++){
  *p = tolower(*p);
}

dic

Re:配列とポインタ

#4

投稿記事 by dic » 16年前

配列を使った場合と
ポインタを使った場合の例なんかのせちゃったりしちゃいます
#include <stdio.h>

void	main()
{
	int	a[10], i;

	for( i=0; i<10; i++ )
		a = i;

	printf( "配列版\n" );
	for( i=0; i<10; i++ )
		printf( "ADDRESS:%8d = %d\n", &a, a );

	printf( "ポインタ版\n" );
	int	*p;
	for( p=a; p!=&a[10]; p++ )
		printf( "ADDRESS:%8d = %d\n", p, *p );
}

参考になれば幸いです

box

Re:配列とポインタ

#5

投稿記事 by box » 16年前

> 		printf( "ADDRESS:%8d = %d\n", &a, a );
> 		printf( "ADDRESS:%8d = %d\n", p, *p );

ポインタ値を出力する際の書式文字列は、"%p"です。
整数値を前提としていると、何かまずいことが起きるかもしれませんし、起きないかもしれません。

dic

Re:配列とポインタ

#6

投稿記事 by dic » 16年前

>ポインタ値を出力する際の書式文字列は、"%p"です。
MSDNで調べたところ %p でした
これは知りませんでした
ご指摘ありがとうございます

閉鎖

“C言語何でも質問掲示板” へ戻る