C c str 和 臨時變數

2021-06-20 15:47:20 字數 514 閱讀 7582

昨天晚上討論了乙個問題, 程式如下:

int function()

列印輸出p的時候,發現為空。 然後就是思考。。 為什麼會為空呢。。 如果我們如如下程式寫的話, 就能正常列印helloworld.

str += "world";

const char *p = str.c_str();

其實也就是在執行str+"world"之後, 該變數為臨時變數, string呼叫析構函式。free掉了這塊記憶體。 自然c_str()函式返回的也是null。

其實程式一的**可以解析為:

string function1(string str1, string str2)

int function()

自然,當function1() 返回 str_tmp字串之後, str_tmp自然就free掉了。 然後再呼叫的c_str()。

mysql表變數臨時表 表變數和臨時表詳解

首先讓我們來看看什麼是表變數和臨時表。sql server 表變數 1.初識表變數 表變數在sql server 2000中首次被引用。表變數的定義和建立乙個表大致相同,只不過是使用declare variable而不是create table,表變數定義包括列定義,列名,資料型別和約束 可用的約束...

臨時變數 引用引數和const

好久沒更了,紀念我的日語n5上冊書學成,更一篇博文。甚是開心!在現代c 中,僅當引數為const引用時,如果實參與引用引數不匹配,c 將生成臨時變數。詳細說來生成臨時變數有兩種情況 實參的型別正確,但不是左值實參的型別不正確,但可以轉換為正確的型別 ps1.左值引數是可被引用的資料物件,例如變數 陣...

SQL 表變數和臨時表

sql 表變數和臨時表 表變數 儲存在記憶體中,作用域是指令碼的執行過程中,指令碼執行完畢之後就會釋放記憶體,適合短時間內儲存資料量小的資料集。優點 使用靈活,使用完之後立即釋放,不占用物理儲存空間 缺點 只適合較小資料量的暫時儲存,不能建索引,資料量稍大時查詢效率慢,佔記憶體 使用臨時表和表變數的...