字符,你的地址在哪裡?

字符,你的地址在哪裡?

在C++中,當聲明一個變量並進行初始化之後,便在內存中開闢了一塊地方,變量名其實就是內存的地址,變量的值就是內存中存放的數據。因此,對變量名取地址運算符得到的就是該變量的內存地址。如下所示:

#include 
using namespace std;
int main()
{
	int num=1;
	int *p=#
	cout<

輸出的是變量num在內存中的地址。

然而,當我們換一個字符變量試試,結果就大跌眼鏡。

#include 
using namespace std;
int main()
{
 char ch='a';
 string s="string";
 char *p1=&ch;
 char *p2=&s[0];
 cout<

結果前2個輸出的是a加亂碼,後兩個輸出的是字符串"string"。出現這個問題的原因是C++標準庫中I/O類對輸出操作符<

#include 
#include 
using namespace std;
int main()
{
 char ch='a';
 string s="string";
 char *p1=&ch;
 char *p2=&s[0];
 printf("%p\n",p1);
 cout<

這樣,就可以正確輸出字符的地址了。


分享到:


相關文章: