C語言(不是C中指標的難題,C語言(不是C )中指標的難題?

2022-07-08 12:35:13 字數 4546 閱讀 6579

1樓:匿名使用者

不動態分配空間,只給個指標值的話,需要輔助的儲存單元char data0,data1,淺拷貝

#include

#include

#define max_chars 100 //假設浮點數轉成字串最大長度是100個字元,可以自己修改

int main()

2樓:匿名使用者

#include

int main()

3樓:林聲飄揚

#include

#include

#include

void main()

;char *str[2];

int i;

for(i=0;i<2;++i)

gcvt(diam[i],5,str[i]); //將浮點數轉換字串並存於指標陣列中,並返回地址

for(i=0;i<2;++i)

printf(

4樓:

#include

#include

int main()

//輸出str

for(int i=0;i<2;i++)

return 0;}

5樓:厲高揚

#include

void tostring(double diam,char* str,int len)

}int main()

//轉化

tostring(diam,str,len);

//輸出

for(i =0 ;i

free(str);

free(diam);}

c語言和c++的指標到底有多難?

6樓:大寺

指標是c語言中比較難理解的一部分了,你可以儘量去理解,不理解也沒關係,c語言是程序導向的語言,現在基本用於系統軟體的開發,相信你以後不會主學c的 。 而其他物件導向的語言沒有指標這個東東的 希望能幫到你

7樓:黎約踐踏

有人說難有人說不難,關鍵你怎麼去理解指標 在我學習的時候就一點兒困難也沒有,反而覺得它非常的好用 學習指標前,你要了解一下記憶體,知道cpu怎麼得到資料 ,那麼一切就easy了 提示一下 指標當作普通變數理解就可以,只是它所儲存的是一個記憶體地址 ,然後你結合 * ,& 的效果一看,指標非常的簡單

8樓:養德亢鴻才

感覺指標不難。主要是他的靈活性會導致軟體崩潰。所以不容許有任何差錯。

c語言中指標的定義問題。為什麼*q加括號?

9樓:匿名使用者

這是一種強制型別轉換,就是將兩個元素強制轉換為*q型別

10樓:冉

這裡就牽涉到標示符的符號的優先順序問題了。

一般來說括號優先順序高於星號。

*p[2] 表示陣列的指標

(*q)[2] 表示指標的陣列

11樓:德昂當

加不加括號,是陣列指標,還是指標陣列的區別*p[2] 是一個指標陣列,首先它是一個陣列,陣列中存的是指標,存指標的陣列。

(*q)[2] 是陣列指標,加括號先與 *結合,它是一個指標,指向一個第一維包含2個元素的2維陣列,存陣列地址的指標。

q=s ; 把 陣列 s 的地址存入 qp[0]=s[0] 把s[0] 第0行的首地址存入 陣列p[0]中

12樓:匿名使用者

(*q)[2]表示一個二維陣列

c語言中的幾個關於* &的指標問題還有建構函式問題(不要扯c++上去了)

13樓:匿名使用者

首先,對樓主的好學好問精神相當讚賞。

對於第一個問題,myadd中傳遞的兩個引數是指標型別,而指標型別的變數中儲存的值是記憶體地址,呼叫此函式時用&就是取對應變數地址之意。注意這* &兩個符號的含義——取指標對應地址的內容和取內容對應的地址。

下一個問題,void意思是該函式結束時不會有返回值,故無return x之說,你要return x,編譯器會報錯的,return 0;則是函式返回值為零,函式定義時是有返回值的,即非void型函式。

第三個問題,因為在函式結束時,函式會釋放它的堆疊,相應的區域性變數(形參)將會釋放掉,但是如果傳的值是指標,函式中改變的內容將與函式堆疊內容無關,修改的是指標指向對應記憶體的位置,故可以作多個修改(傳多個指標,修改多個指標指向的記憶體空間)。

最後一個問題,return的意思是函式返回,只要呼叫這一語句,函式即刻返回,該語句下的所有語句將不會被執行。

最後祝樓主的c語言之路越走越棒!!

14樓:國風地帶

其實這是關於指標的問題。在指標中,int* a表示設定一個指標,指標名字是a,指標指向的變數型別是整形,而光是*a則是表示呼叫呼叫指標所指向的變數的值,而&a則是指指標a在電腦中儲存的地址。例如,int* a;int t=10;a=&t;則a中存入的就是變數t的記憶體地址,a=xcd487(隨便寫的值,指的是t的記憶體地址),同時,雖然a中存入的是t的記憶體地址,但是a也是一個變數,它也有記憶體地址,&a就是取a的記憶體地址,*a==t==10,因為*a取得是a所指向的變數的值嘛。

15樓:匿名使用者

問題的答案樓上的都說了,推薦你好好看下譚浩強的c程式設計,看完後這些問題就明白了

c語言中記憶體指標空間問題

16樓:匿名使用者

str3其實有7個char空間 最後是個\0 str2是有4個char空間

第一種 大的進小的 進不去 或者說想7個人擠進4個人的地方 是不行的 一般程式會崩潰掉

第二種 正好 最後str2和str3一樣了第三種 小的進大的 那麼前四位就被覆蓋了 到/0說明串結束了 5 6 7就成垃圾數了 沒啥意義的東西了 他不屬於這個小串 也不屬於大串了

17樓:匿名使用者

就問題中的3個例子來說,反正一般都是執行時崩潰,就沒什麼區別了……

c++中的指標可以賦值為0,c語言中指標可以賦值為0嗎?

18樓:

可以。只有0有這個特權,無論什麼型別的非常指標,在任何時候都可以直接賦0值來表示這個指標不可用。

關於c++與c語言的結構體指標中的陣列

19樓:鬱_詩

一樓說的對,我補充下吧。

int a[10], *p;

那麼a和&a都是指標,由於最終都指向a[0]這元素的地址,所以值是一樣的,只是型別不同。a是"int *"型,而&a是"int (*)[10]"型(即指向陣列的指標)。

而p和&p的值就不一樣了。前者是」int *「型,後者是」int **「型。

所以你的問題中,ss->a和&(ss->a)的值是一樣的,只是型別不一樣。

這點c和c++都是一樣的。

(注:如果讓p=&a,那麼編譯器會警告或報錯的,因為等號兩邊型別不一樣)

20樓:匿名使用者

struct st *ss;

ss是struct st型別的指標,&(ss->a),是取ss->a[0]的地址。

與 int a[10]; int *p = &a; 等同,但對於構造型別指標,訪問成員時,必須使用->操作符。

c++指標與c指標有什麼區別?

21樓:及萍韻漆學

c++裡面的指標可以指向物件

動態申請記憶體的時候用new運算子

c語言的指標指向的是記憶體(不懂物件)

動態申請記憶體的時候用malloc系列的函式

22樓:匿名使用者

對空指標的定義稍有不同

在c語言中:#define null (void*)0在c++語言:#define null 0數字0是唯一允許可以直接賦給版指標的數值

另外權c++中類成員指標等型別是c語言中所沒有的

23樓:匿名使用者

c++中有this指標,用於指向成員函式。c語言沒有

24樓:飛塵

1. 引用必須被初始bai化,指

針不必。du

2. 引用初始化以zhi後不dao

能被改變,指標可以內改變所指的物件。

容3.不存在指向空值的引用,但是存在指向空值的指標。

c++中儘量用引用。個人覺得所有的引用都可以用指標,但指標比引用容易出錯。

引用當然更直觀更直接,做引數時,如果在函式內不刻意要用指標的那些***(如越界訪問,動態定向什麼的),引用可以代替指標

25樓:匿名使用者

c++繼承了c語言指標的特點,與c語言的指標用法相同

26樓:匿名使用者

使用方法是一樣的,不要想太多。

27樓:匿名使用者

沒什麼區別 都是一樣的

c語言中指標和引用的區別,C語言中指標和引用的區別

指標,全稱為指標變數,是用來儲存記憶體地址的一種變數。程式中,一般通過指標來訪問其指向的記憶體地址中的內容 資料 引用,是c 中提出來的一種新的使用變數的方式,即,給實際變數起個別名,通過這個別名來引用實際的變數。標準c中不支援變數的引用。這兩個概念沒有任何相關性。指標是實實在在的變數,有自己的記憶...

c中指標怎麼用,c語言中指標怎麼使用

int p 宣告一copy個指向int的指標pint a a 3 p a printf d p 列印a的地址printf d p 列印a的值 p 4 改變a的值。printf d a 列印a的值為4 推薦看書 c和指標 這裡最好的回答吧,指標可不是一天兩天能夠學會的 c語言中指標怎麼使用?1 使用場...

c語言中指標在程式設計中有什麼作用,C語言中指標在程式設計中有什麼作用?

指標,太有用了,也最難管理的,好處多的是,比如,函式傳遞,引數是結構時,傳指標可以提高效能 可以通過傳遞和儲存指標,通過資料的相對位置來訪問資料,而不用定義不同的n個變數來,分別使用。比如 int a 10 那麼用a 0 a 9 即可訪問裡面的10個資料,而只需要知道a的地址即可,操作方便,而且在函...