1樓:匿名使用者
在你提供的**上進行了增加
,我感覺你們老師可能是想讓你們把指標用在陣列上吧,對於一個指向陣列的指標p,p++指向陣列的下一個元素。此外,使用指標可以很好的提升**執行效率。有問題可以互相交流。
#include
#include
int square(int a, int b)int main()
}for(j = 0; j < *p; j++)printf("您的田地總面積為: %d \n", s);
printf("您最大面積一塊第為第%d塊,面積為%d !!!", number, max);
return 0;}
c語言指標用法?
2樓:匿名使用者
記憶體理解為一間旅館
變數理解為旅客
指標就是每間客房的號碼
你作為旅館老闆,想叫某位客人來吃飯.不用記得他的名字,只要知道他的門牌號就行.
3樓:大野瘦子
1、使用場景
使用指標時,必須將它指向一個變數的地址或者為它分配空間方能使用,如下所示:
#include
#include
int main(int argc, char const *argv)
;int *b,*d;
int c=2;
int *e=a; //e指向a陣列首地址
//*b=2; 無法直接初始化
//printf("%d\n", *b);
e=e+2; //移動兩個地址單元
d=&c; //d指向c的地址來表示值
c=4; //修改原c變數的值,d指標的值會發生改變
b=(int *)malloc(sizeof(int));//為b分配一個int型空間來直接儲存值
*b=2;//分配空間後可以直接賦值了
printf("this is e,b,c,d :%d %d %d %d\n",*e,*b,c,*d);
2、型別說明
(1)int *a :表示一個指向int型變數的指標,指向的是變數的地址單元
(2)char *b:表示一個指向char變數的指標
*a表示的是這個指標指向地址的值,a為此指標本身的地址,這點要明確,一般用*(a+1)、*(a+2)來表示值,如:
int nums[5]=;
int *a=nums;
printf("%d %d %p\n",*a,*(a+1),a);
指標的運算
指標指向變數地址,若原變數的內容發生了變化,它本身也會發生變化,指標之間的運算一般為值運算和地址運算
(1)值運算:直接通過*運算方式,像a+*(a+1),結果為第一個元素與第二個元素相加。
int nums[5]=;
int *a=nums;
(2)地址運算:通過a+i的方式.指標會指向a的下i個地址。
int nums[5]=;
int *a=nums;
a=a+2;
printf("%d\n",*a);
結果輸出2。
4樓:tel有你有我
給你你個簡單的例子吧 好好體會一下 這個例子比較全#include
void swap(int *p1,int *p2);
main()
void swap(int *p1,int *p2)//指標的交換
5樓:匿名使用者
指標就是地址。把握住地址的變換,尤其要把握住頭指標,指標如果弄懂了,其實是很簡單、很方便的、好好看看書、多實踐、加油、、、
6樓:匿名使用者
這個確實有點複雜,特別是二維陣列,要多程式設計實踐
7樓:姚詩邰書桃
#include
#include
#include
void
sort(char
*a,intn){
inti,j;
char
*temp;
for(i=0;i這樣
其中char
*temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
做了修改
原因如下:未修改前temp是一個字元變數,而*a[i]是指標a[i]所指向的內容,就把需要交換的字串的首字元交換了。
你要交換的是指標或者說是地址,而不是指標裡的內容。這就是問題所在。
在temp前加*就表示temp也是個指標,再把a[i]前的*去掉,就實現了交換指標地址的目的。
指標的宣告要加*例如
int*a;
使用的時候如果事指標操作則不要帶*例如
char*a=
「hank」;
a++;此時a指向的字串就變成了「ank」
涉及到指標指向的內容的要加*例如
charb=
*a;指向陣列的指標,例如
intb[10];
int*a=b;
a就是b[0]的地址*a就是b[0]的內容a+1就是b[1]的地址依此類推
又如char*a=
"hank";
那麼通過a就能得到整個字串"hank"
*a是h
*(a+1)是a
...strcmp是c語言函式庫中的函式
雖然傳參傳的是指標,但是具體比較的時候比較的是裡面的內容。具體涉及到指向陣列的指標的應用。因為c中沒有string型別,所以就只能使用char型別的指標來表示字串。
8樓:恍然大悟
具體點嘛老兄,鬼才知道你問的什麼。如果你對指標一竅不通那隻能去看書了現在書上了解一下,學習指標,個人感覺就是需要多動筆 在紙上寫寫勾勒出各個變數的關係 這樣時間久了自然就熟悉了
c語言中指標的作用是什麼?
9樓:匿名使用者
指標指向地址,指標的特性就是在地址不變的情況下,可以很方便的修改所指向的內容
最重要的應用有兩個,一是函式引數,二是函式指標函式引數:函式返回值只有一個,如果想回傳多個引數,則必須使用指標函式指標:典型應用就是**函式(callback)
10樓:杜爺1號
簡單地說指標就是指向變數和物件的地址。
指標的用途非常廣泛,比如如果你想通過函式改變一個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞一個地址就行,大大提高了效率。
以上還只是指標的初步應用,隨著你在c語言學習上的逐步深入,你會發現更多的用途的。
11樓:匿名使用者
用來簡單的標示一個地址引用。
指向變數地址,便於對變數操作。
就像桌面的快捷方式,它指向一個真實的檔案。
就像給儲存器的某個儲存地址單元起了個名字,操作這個名字就等於操作的這個儲存地址單元,比如,要給某個儲存地址單元賦值,這時候就把值賦給,指向這個儲存地址的名字。也就是說,使用指標表示地址單元比直接用記憶體地址號表示方式,更人性化,操作更靈活。
12樓:匿名使用者
指向地址啊。
比如a是指標
*a 就是指a地址所存的數字。
呼叫其中數字。
13樓:匿名使用者
指標是一種存放另一個變數的地址的變數。
比如申請一個整形變數 int a = 128; 再申請一個指標讓這個指標指向變數a.
int *p;
p = &a; //取a在記憶體中的地址,把a的地址賦給p。這樣p就指向了變數a的地址。
14樓:奧·備侖思
指標,首先從概念上是「變數」。
它存放的是記憶體地址,而不是具體資料。
15樓:天涯海角情緣在
怎麼說指標的作用呢?通俗點講就是當你用上指標的時候,你到目標地的就會有捷徑了,移動性強,可操作性很大,對於資料的刪除、插入、編輯都很方便,換成其他的,則比較麻煩。
16樓:匿名使用者
c語言中指標的作用是什麼?啊這個問題還不好一句回答。這是c本身是低階語言,能夠操動記憶體的特效決定的,早期的時候對計算機說這就是效率。
現在好像不是這樣說了,都說指標很危險,特別是在目前複雜作業系統下。
要是說作用是什麼?是求高效的低階語言特有的特質。
17樓:匿名使用者
指標啊,用來取一個元素在記憶體中的地址
在c語言中什麼是指標?指標是幹什麼用的?,有什麼意義?
18樓:仙
寫簡單的程式的話不用指標也行了吧. 比如這裡a是一個地址(編譯後), 為了讀寫這個地址單元裡的東西,可以用p,也可以用一般變數a.
對於指標的便利,我現在能想到的,可能是:
函式a呼叫函式b時,把一個記憶體塊的地址傳遞過去,這樣可以避免按值傳遞時開闢一個棧空間並逐一拷貝記憶體塊裡的值的開銷(c++裡的拷貝建構函式在做這件事),並且a,b函式操作的都是同一個記憶體塊裡的東西,如果這就是目的,那麼傳指標就是很有效率的做法(如果不用指標就可能要用一個全域性的變數了). 用一個指標(函式指標)存放一系列同型別的函式名(入口地址),方便函式呼叫. void*型別指標可以存放任何型別指標.
讓父類型別指標指向任何子類物件可以實現動態繫結. 寫著寫著似乎指標還挺有用,呵呵.
c語言指標的作用有哪些?
19樓:嘩嘩嘩嘩
指標的用途非常廣泛,比如如果你想通過函式改變一個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞一個地址就行,大大提高了效率。簡單地說指標就是指向變數和物件的地址。
基本說明:
1、在計算機中,所有的資料都是存放在儲存器中的。 一般把儲存器中的一個位元組稱為一個記憶體單元, 不同的資料型別所佔用的記憶體單元數不等,如整型量佔2個單元,字元量佔1個單元等;
2、為了正確地訪問這些記憶體單元,須為每個記憶體單元編上號。 根據一個記憶體單元的編號即可準確地找到該記憶體單元。既然根據記憶體單元的編號或地址就可以找到所需的記憶體單元,所以通常也把這個地址稱為指標。
記憶體單元的指標和記憶體單元的內容是兩個不同的概念。
20樓:波波球
您好c語言指標的作用很多,其實說白了就是直接操作記憶體,或者理解為直接操作記憶體的優點有哪些
1、效率更高,這個很容易理解,直接操作記憶體,效率必然更高2、可以寫複雜度更高的資料結構,這個也好理解,程式設計師可以操作記憶體,當然可以寫出靈活、複雜的資料結構
3、編寫出簡潔、緊湊、高效的程式
其實說白了就是操作記憶體
希望可以幫助到您
21樓:匿名使用者
指標的作用就是儲存地址值。從數值上來看,它和整型資料沒有區別,
在使用中,系統是通過地址來訪問記憶體中的資料的。多看看書,多練習一下,多體會體會
22樓:匿名使用者
其實只有一個作用,也是所有的指標操作的本質
操作記憶體
23樓:匿名使用者
這個太~~多了吧。
建議您還是看書吧,《the c programming language》英文可以就看英文版,不行就中文版。
或者《c++ primer》
c語言指標問題,C語言指標問題
記憶體對齊的緣故。p buf 作為一個指標,它的值是記憶體的某個位元組的地址。如果想要把 p buf 強制轉換版 成一個 unsigned int 型別的指權針,需要滿足一個必要條件,就是 p buf 的值必須能夠被4整除。之所以是4,是因為 unsigned int 是要佔4個位元組的 c語言結構...
c語言,指標,stm32,C語言的指標問題
tp dev為外結構體變數,當變數被引用時,它必須時一個已經賦值 初始化 的變數,所以tp 被引用時,呼叫的時初始化了的函式指標scan 所指向的函式tp scan tp dev是一個結構體,init scan都是他的結構體成員,這幾個成員的型別是函式指標,也就是說指向了一個函式,使用這個指標,就等...
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 使用場...