C語言指標程式設計,C語言用指標程式設計實現strcat函式的功能

時間 2022-07-22 07:22:27

1樓:泥虎

雖然邊產生的不是乙個很簡單的程式設計,需要新學習。

c語言用指標程式設計實現strcat函式的功能

2樓:刺友互

1、首先開啟vs2014,新建乙個專案。

2、新增標頭檔案。

3、新增main主函式。

4、定義乙個函式addtwonumbers。

5、在main函式定義a,b,sum。

6、宣告函式指標ptr_sum。

7、將addtwonumbers函式位址賦值給ptr_sum。

8、執行程式,看看結果。

3樓:問明

#include

#include

void my_strcat( char *arr1,const char *arr2)

char* ret=arr1;

const char* dst=arr2;

assert(arr1);

assert(arr2);

while(*ret)00

{//將指標所指目標轉移到未賦值的字元位置ret++;

while(*dst)

*ret = *dst;

dst++;

ret++;

*ret=*dst;   //將' \0 '拷貝到arr1中printf("%s\n",arr1);

int main()

char arr1[32]="i am a ";

const char arr2="good student!";

my_strcat(arr1,arr2);

return 0;

執行效果:

其它方法:

#include

#include

#include

void my_strcat( char* arr1, const char* arr2,int n)

char* p = arr1;

char* q =(char *)arr2;

assert(arr1);

assert(arr2);

p = p + n;

while( *q!= '\0')

*p = *q;

p++;

q++;

*p = *q;

printf("%s\n",arr1);

int main()

char arr1[32]="i am a";

const char arr2=" good boy!";

int n=strlen(arr1);

my_strcat(arr1,arr2,n);

return 0;

4樓:匿名使用者

#include

//strcopy(char *str1,char *str2)char* strcopy(char *str1,char *str2)

*str1='\0';

}*///邏輯有問題

//先讓str1指向字串尾

char *p = str1;//儲存連線後的字串首部while(*str1 != '\0')

++str1;

while(*str1++ = *str2++);return p;//返回連線後的字串指標}void main()

執行結果:

5樓:匿名使用者

具體見下圖:

其中char *strcat(char *str1,char *str2);是strcat函式實現的方法,main函式用於測試strcat準確性,具體如上!

6樓:it孤鶩

#include

char *strcopy(char *str1,char *str2)

char *p = str1;

while((*str1)!='\0') str1++;

while((*str2)!='\0')

*str1++=*str2++;

*str1='\0';

return p;

void main()

char str1[20],str2[10]; //開闢大一點的空間printf("str1:\n");

gets(str1);

printf("str2:\n");

gets(str2);

printf("連線後:%s\n",strcopy(str1,str2));

c語言指標的概念

7樓:匿名使用者

指標是c語言中廣泛使用的一種資料型別。 運用指標程式設計是c語言最主要的風格之一。利用指標變數可以表示各種資料結構; 能很方便地使用陣列和字串; 並能象組合語言一樣處理記憶體位址,從而編出精練而高效的程式。

指標極大地豐富了c語言的功能。 學習指標是學習c語言中最重要的一環, 能否正確理解和使用指標是我們是否掌握c語言的乙個標誌。同時, 指標也是c語言中最為困難的一部分,在學習中除了要正確理解基本概念,還必須要多程式設計,上機除錯。

只要作到這些,指標也是不難掌握的。

指標的基本概念 在計算機中,所有的資料都是存放在儲存器中的。 一般把儲存器中的乙個位元組稱為乙個記憶體單元, 不同的資料型別所占用的記憶體單元數不等,如整型量佔2個單元,字元量佔1個單元等, 在第二章中已有詳細的介紹。為了正確地訪問這些記憶體單元, 必須為每個記憶體單元編上號。

根據乙個記憶體單元的編號即可準確地找到該記憶體單元。記憶體單元的編號也叫做位址。 既然根據記憶體單元的編號或位址就可以找到所需的記憶體單元,所以通常也把這個位址稱為指標。

記憶體單元的指標和記憶體單元的內容是兩個不同的概念。 可以用乙個通俗的例子來說明它們之間的關係。我們到銀行去訪問款時, 銀行工作人員將根據我們的帳號去找我們的存款單, 找到之後在存單上寫入存款、取款的金額。

在這裡,帳號就是存單的指標, 存款數是存單的內容。對於乙個記憶體單元來說,單元的位址即為指標, 其中存放的資料才是該單元的內容。在c語言中, 允許用乙個變數來存放指標,這種變數稱為指標變數。

因此, 乙個指標變數的值就是某個記憶體單元的位址或稱為某記憶體單元的指標。圖中,設有字元變數c,其內容為「k」(ascii碼為十進位制數 75),c占用了011a號單元(位址用十六進數表示)。設有指標變數p,內容為011a, 這種情況我們稱為p指向變數c,或說p是指向變數c的指標。

嚴格地說,乙個指標是乙個位址, 是乙個常量。而乙個指標變數卻可以被賦予不同的指標值,是變。 但在常把指標變數簡稱為指標。

為了避免混淆,我們中約定:「指標」是指位址, 是常量,「指標變數」是指取值為位址的變數。 定義指標的目的是為了通過指標去訪問記憶體單元。

既然指標變數的值是乙個位址, 那麼這個位址不僅可以是變數的位址, 也可以是其它資料結構的位址。在乙個指標變數中存放一

個陣列或乙個函式的首位址有何意義呢? 因為陣列或函式都是連續存放的。通過訪問指標變數取得了陣列或函式的首位址, 也就找到了該陣列或函式。

這樣一來, 凡是出現陣列,函式的地方都可以用乙個指標變數來表示, 只要該指標變數中賦予陣列或函式的首位址即可。這樣做, 將會使程式的概念十分清楚,程式本身也精練,高效。在c語言中, 一種資料型別或資料結構往往都占有一組連續的記憶體單元。

用「位址」這個概念並不能很好地描述一種資料型別或資料結構, 而「指標」雖然實際上也是乙個位址,但它卻是乙個資料結構的首位址, 它是「指向」乙個資料結構的,因而概念更為清楚,表示更為明確。 這也是引入「指標」概念的乙個重要原因。

8樓:匿名使用者

開闢乙個位址空間

空間中的內容記錄的是

另乙個位址

對他指向的資料進行操作

和直接對變數操作是乙個意思

c語言指標程式設計題 10

9樓:陽光的凌寶寶

或音量減鍵 + 開機鍵(也就是電源鍵)

c語言指標指向函式程式設計練習

10樓:

#include "stdio.h"//

void fun0(int n)

void fun1(int n)

void fun2(int n)

void main(void);

int n;

printf("type 1,2 or 3\nn=");

scanf("%d",&n);

n--;

ptr[n](n);

printf("\n");}

用c語言指標程式設計

11樓:丹崑雄

(1)#include

int main()

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

printf("%d ",a[i]);

} (2)

int strcomp(char *s, char *t)if (*(s+i) == '\0' && *(t+i) == '\0')

return 0;

else if (*(s+i) != '\0' && *(t+i) == '\0')

return 1;

else

return -1;}

c語言的指標有什麼優缺點?

12樓:愛夏的你呀

1、指標的優點

是標識一塊記憶體。電腦記憶體上的每乙個位元組都具有乙個編號,稱為位址(可以簡單理解為指標),任何讀寫記憶體的指令都必須攜帶位址資訊,否則電腦不知道讀寫那塊記憶體。

不管程式是用什麼語言寫的,要執行資料和**必須駐留記憶體,cpu要執行指令必須有乙個「指標」程式計數器指向記憶體的**塊,如果某個指令要操作記憶體資料,該指令必須攜帶額外的位址資訊。

2、指標的缺點

指標可以操作任何東西,所以指標很靈活、很強大,但也引入了複雜性。

擴充套件資料

1、指標利用位址,它的值直接指向(points to)存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。

2、輸出一串字元時,只需要知道它的第乙個字元的位址,就可以將這個字串輸出,而第乙個字元的位址,可以用指標儲存。所以有n個字串時,就可以用n個指標來儲存。

3、為了儲存乙個資料在記憶體中的位址,就需要指標變數。因此指標是程式資料在記憶體中的位址,而指標變數是用來儲存這些位址的變數。

13樓:文化廚子

指標是c語言只所以如此成功的重要原因之一,當然任何事物,往往都是一體兩面的,本質上是一體,看上去是兩面,關鍵是要活學活用,沒比較過分的區別優點、缺點。

c語言主要是針對硬體及系統底層程式設計的,在針對硬體及系統底層程式設計中,對資料的靈活性要求較高,換句話說資料的意義需要經常變動,而資料型別決定了資料的意義,指標乙個重要作用是實現對資料型別的轉換,比如要將機器碼為0x3f8ccccd表示成浮點數:

#include

int main()

指標這種能改變資料上下文環境的能力是非常有用的, 比如檢測cpu所支援的儲存順序。

#include

char endian(void)

int main()

如果c語言沒有指標,當然可以想出其它的方法,但是遠沒有指標方便。

指標的缺點,可能對於初學者來說 ,往往不容易理解,而且使用指標程式設計經常會出現一些莫名其妙的錯誤,而且在平時使用c語言進行應用程式開發時,好像指標真的不怎麼有用,這些都不是問題,關鍵是看個人學習c語言的用處,做什麼開發,上什麼專案。

c語言程式設計 指標變數賦值,C語言程式設計 指標變數賦值

要將指標指向的值賦值到變數上,需要將指標指向的值取出,然後執行賦值操作。對指標取值需要使用取值運算子 這個符號和乘相同,但功能不同。用於取值時,為單目運算,與後續的指標相結合,實現取指標指向的值的效果。比如int a 10 int b int p a 這時p指向變數a的位址,指向的值為10,要將其賦...

程式設計,c語言,c語言程式設計

這也值40分。好吧,等下啊我敲 密碼不用加防盜保護吧。寫好了,這應該是你要的 程式 include define imax 5000 define imin 50 define omax 1000 define 0min 50 long pw,money void in printf 超出範圍!失敗...

c語言,指標,c語言,指標?

void swap int a,int b 這個函式,只是交換了a和b的指向,比如說原來a指向1000,b指向2000,交換後a指向2000,b指向1000。但是呢,指向的內容並沒有變,位址為1000裡面的內容依然是3 假設 位址2000裡面依然是5,而且p和q依然是分別指向1000和2000,也就...

要求用C語言程式設計,用C語言程式設計?

不知道我做得對不對了,請大家指正吧!include void main else if a 1 可以設定兩種狀態,0就是不去,1就是去。把a,b,c,d,e,f全部初始化為0,說明它們在最開始都是不去的。然後根據下面的條件來判斷誰是1,就說明誰去。用c語言程式設計?5 求助,c語言怎麼編寫程式啊?您...

急需,c語言程式設計題,用c語言編,急需,C語言程式設計題,用C語言編

include int main printf 李 d 王 d 張 d n a,b,c include stdio.h include string.h struct personleader 3 int main printf n for i 0 i 3 i printf 5s d n leade...