06 5 關於指標的幾個例子

2021-08-16 19:00:07 字數 1756 閱讀 2860

1、實現乙個方法「多個返回值」的效果:返回數字的個位、十位、百位。

基於本程式的一些基本的c語法:

'%'為取餘運算子,用於把它前面的整數值或表示式除以

其後面的整數值或表示式,結果為不能被後面的整數或表達

式整除的最小整數,它後面的數值應該為大於1的正整數。如

表中所示的"13%7",就表示13 除以7餘6。

『/' 是2目運算子,除法運算,整數除以整數則得整數

'&'  取位址運算子,&a表示取變數a的位址;

'*'  指標運算子(取內容運算子)*p表示取p所指向的變數的內容

①先定義後賦值 int a=3,*p;(定義指標變數*p)

p=&a;(對指標變數取位址)

②定義變數的同時賦值  int a=3,*p=&a

也就是說在賦值時,int *p=&a

相當於            int *p;p=&a 

它們的區別其實就是:

int *p=&a是同時定義*p並對賦值p(即a的位址賦給p),

而p=&a,只是對p賦值,沒有定義指標變數。

但要注意,只有在同時定義賦值時「*p=&a」這種寫法才是對的

其他情況下不要用*p=&a,這種形式,

15ptrmultreturnvalue.c

#include /*達到乙個方法「多個返回值」的效果:返回數字的個位、十位、百位。*/

int parsegsb(int num,int *ge,int *shi,int *bai)

//365: 個位365%10 = 5 //365整除10得到的餘數

//十位:(365/10)%10 = 6

//百位: (365/100)%10 = 3

*ge = num%10;

*shi = (num/10)%10;

*bai = (num/100)%10;

}int main(int argc, char *argv)

return 0;

}

2、計算乙個字串的長度(null-terminated)

16ptrcalculstringlenth.c

#include /*計算乙個字串的長度(null-terminated)*/

int mystrlen(char *str) //從首位址往後移,直到\0位置

return len;

}int main(int argc, char *argv)

3、判斷乙個字串是否以另乙個子子字串結尾。**見備註。

17ptrjudgestring.c

#include /*判斷乙個字串是否以另乙個子子字串結尾。*/

int endswith(char *str,char *substr) //如果是則返回1,否則返回0

int substrlen=0;

while(*substr!='\0')

//if(substrlen>strlen) //首先判斷兩個字串的長度,如果子字串

int i;

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

str--;

substr--;

} return 1;

}// str1:"rupeng"; str2:"eng"; str3:"ing"

int main(int argc, char *argv)

關於記憶體分配的幾個例子

1.include include include void getmemory char p void test int main void getmemory char p void test void 分析 在vs2010上編譯可以通過,但是不能執行。個人理解 執行getmemory 時,p是...

EnumSet的幾個例子

enumset 是乙個與列舉型別一起使用的專用 set 實現。列舉set中所有元素都必須來自單個列舉型別 即必須是同型別,且該型別是enum的子類 列舉型別在建立 set 時顯式或隱式地指定。列舉 set 在內部表示為位向量。此表示形式非常緊湊且高效。此類的空間和時間效能應該很好,足以用作傳統上基於...

關於遞迴演算法的幾個例子(C語言)

1.遞迴演算法的定義 2.遞迴與迭代的優劣 eg1 斐波那契數列 斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 2...