1樓:吞併微軟
const mytring a=new char;
a 就是一個只讀記憶體的地址。
2樓:匿名使用者
你定義一個mytring型別的常量(在定義時就初始化,以後便不能改變)不就行了嗎?
3樓:拒絕996的瀟灑程式設計師
songwanqiang正解
4樓:匿名使用者
簡單說,記憶體三種型別,堆、棧和靜態儲存區。
把變數定義到靜態儲存區就可以了。
mytring str = "helloworld!";
這時,"helloworld!"字串處於read-only區域,而不是str。
理解一下下面的例子:
mytring const str = "helloworld!";
*str = 'b'; //這句是執行時錯誤
str = "bar"; //這句是編譯錯誤
這時str也是處於read-only區域。
ps:定義read-only儲存,是看關鍵字const的屬性賦予點了。
舉幾個例子:
typedef char *mystring;
hi你問
mystrig const 和 const mystring的區別,這兩個是等價的。因為現在mystring已經是個型別了,而不是簡單的char *型別。就像const int 和 int const是一樣的一個道理。
注意與下面的定義區分:
char *const 和 const char *,這兩個不是等價的,前者是定義一個常指標,後者是定義一個「自以為」指向常字元的指標。而char const *和 const char *是等價的,因為屬性賦予點都在型別上。
簡單的記,const的屬性賦予點是在其最近的識別符號或型別上,僅僅作用在一個點上面。這句話細想不是很嚴謹,但是一般這樣用沒錯。
注意,一再強調是「型別」。
假如有#define mystring char *這樣的定義,和typedef char *mystring是不同的,#define僅僅是預處理期的簡單替換,不是型別。所以假設定義:
#define mystring char *
這時mystrig const 和 const mystring的是不同的,前者等價與char *const,後者等價於const char *。
c++的只讀記憶體怎麼改
5樓:匿名使用者
char *st="abcdefg";的時候,該字串是存放在全域性常量區,是屬於堆裡的,你沒有許可權進行修改的 char str="abcdefg"則是在main 函式的棧裡開闢的,使用者可以修改,且函式結束,自動釋放 這才是原因,分清楚各種變數是如何儲存的。。
6樓:匿名使用者
#include "iostream"
using namespace std;
int string_length(char *str)void reversestr(char *str)for(int k=0;k<=i;k++)cout<<(*(str+k));
}void main()
c++中,引用&變數是不分配記憶體空間嗎?那麼定義一個引用變數,如int& a
7樓:搗蒜大師
對啊 就是你說的那樣。現在引用就是個指標,非說一點不佔記憶體那是不可能的。
8樓:匿名使用者
引用只是編譯過程的一個概念
由編譯器決定
產生的機器碼中,有些需要佔記憶體,有些則不需要在不同情形下,各有不同
9樓:鬱草小沙彌
沒有分配。我覺得你產生誤解的原因是你誤解了宣告一個引用變數的方式。int& a;這種寫法是不對的,屬於語法錯誤,宣告一個引用變數是要給它初始值的,這就是引用變數特殊的地方:
int i; int& a = i; 這樣才對,也就是說,必須現有一個普通變數i,才能宣告一個引用變數a來指向i,a本身只相當於一個標識,與變數名i沒區別。你可以理解為一個變數有了兩個名字。
10樓:
指標資訊是佔用記憶體的,這部分記憶體是系統自動分配的,不需要你來操心它被放在**。通常我們說分配記憶體空間,是給你的變數內容使用的。你的變數可能是一串字元,一段文字,一個數值。
這些是真正需要你分配空間的地方。
就像賓館一樣,來了客人,開了房,就等於分配空間了。當然登記簿上是記了一筆,但是這個登記簿是由賓館來管理的。按照什麼格式,記了什麼東西是賓館管理方自己規定的。
你住進房間了,人家給你登記為某先生。一開始別人來找你都問某先上在嗎?後來住長了服務員都知道你是某公司某總。
那麼從他們從客人備註裡就寫上了這個資訊。今後一提某公司某總,就知道是你了。這就是引用。
並沒給你新開房,就是給你加一別名,往本子裡記一筆而已。房間並沒有變動。
怎麼 在c++ 中定義儲存中文字串的變數
11樓:home魅影傳說
漢字根據編碼方式不同,所佔的大小2~4個位元組不等,漢字賦值給字元變數,只顯示第一個位元組,出問號就不奇怪了
用漢字賦值給字元數陣列然後在顯示的話,一定要考慮編碼方式問題,你的終端支援哪種就選擇哪種,否則亂碼
c++中如何定義一個動態儲存的全域性變數 5
12樓:匿名使用者
在標頭檔案中,
extern int stu_num;
在.cpp檔案的頭部
#include "標頭檔案"
int stu_num;
13樓:你是大母雞
在函式外面輸入類似
int stu_num[7]=就ok
14樓:匿名使用者
#define stu_num 80;
C 中類怎樣定義,使用,C 中如果要用的類定義在使用之後,該怎樣宣告?
類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為 方法 實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者 幹什麼 而實現部分是告訴使用者 怎麼幹 類的一般定義格式如下 class 類...
C中存在define的巨集定義嗎,C 中怎麼寫類似c語言的 define?
1全部 程式設計師參考 define請參見 c 前處理器指令 條件方法教程 define 使您得以定義符號,這樣,通過將該符號用作傳遞到 if 指令的表示式,該表示式將計算為 true。define symbol 其中 symbol 要定義的符號名稱。備註符號可用於指定編譯的條件。可以用 if 或 ...
如何用c從一組數中隨機抽取數字,C 中如何從陣列中獲取一個隨機數
int array 按照樓主所說的3個數dictionaryextract new dictionary 記錄每個數抽 取的次數 for int i 0 i array.length i random ran new random listlist new list 裝載抽取出來的數for int ...