初学者です。
ポインタについて分からないことがありましたので質問させていただきます。
二つのコードを張りました。どちらもネットに挙がっているコードです。
両方ともコンパイルしました。
上の Kitty(char *str)とplus1(int *x)関数を比べたときに矛盾したように感じました。
1.Kitty(char str)関数内では、strに文字列がstrにアドレスが入っている。
2.plus1(int *x)関数内では、*xに数字の1がxにアドレスが入っている。
ポインタ変数(int number)などには、数字が入り、numberにはアドレスが入ると学んだので1で
strに文字列がstrにアドレスが入っているいるのが不思議なのですが、訳を簡単に説明していただけますでしょうか。
宜しくお願い致します。
#include <iostream> using namespace std; void Kitty() { cout << "Kitty on your lap\n"; } void Kitty(char *str) { cout << str; } int main() { Kitty(); Kitty("Di Gi Gharat\n"); return 0; }
#include<stdio.h> int plus1(int *x){ *x = *x + 1 ; return *x ; } int main(void){ int a ; a = 1 ; plus1(&a); printf("a = %d\n",a);//a = 2と表示される return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。