程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-關於C++函數調用堆棧的問題

c++-關於C++函數調用堆棧的問題

編輯:編程綜合問答
關於C++函數調用堆棧的問題

請問下面的程序的兩次輸出結果為什麼都是"abc"呢,不是說get()中的a是分配在棧上的嗎
那麼調用一次set()之後應該顯示"123"或者其他字符串才對吧?

 #include <iostream>
using namespace std;
char* get()
{
    char a[]="abc";
    return a;
}
void set()
{
    char b[]="123";
}
void main()
{   
    char* p=get();
    cout<<p<<endl;
    set();
    cout<<p<<endl;
}

最佳回答:


a確實是在棧上的,但是“abc”是在常量區的。還有set並沒有對p做什麼操作,p怎麼會改變呢。

a1193561652
Beluma123
a1193561652
Beluma123
a1193561652
Beluma123
Beluma123
Beluma123
Beluma123
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved