日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言int转字符串_C语言零基础入门-指针-05

發(fā)布時間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言int转字符串_C语言零基础入门-指针-05 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C語言零基礎(chǔ)入門-指針-05

本節(jié)要點:
1,字符指針。
2,字符串指針。
3,指針的參數(shù)傳遞
4,多重指針

01. 字符指針

這里的定義與前面的基本一樣,所謂的字符指針就是這個指針指向的是一個字符型的變量。

01.1 單個字符

代碼如下:

#include#include<stdio.h>void main(){char a = 'A';char *p = &a;printf("%c ",*p); }
  • 首先定義了一個字符型變量a。
  • 由于指針p將要指向的變量的字符類型的,所以指針變量p定義的時候前面的數(shù)據(jù)類型也是char。

02. 字符串指針

單個字符的指針與之前定義的int,float類似,都是一個數(shù)據(jù)。接下來說一下字符串的指針。

02.1 字符串定義的回顧

在學(xué)數(shù)據(jù)類型的時候我說過,C語言中沒有字符串,但是C語言的字符串可以使用數(shù)組模擬出來(并且C語言中提供了格式控制符 %s 來進行字符串的輸出)

方法1:

#include<stdio.h>void main(){char str[] = {'1','2','3','4','5','0'};printf("%sn",str);printf("%cn",str[3]); }

這種方式就是我們最常用的數(shù)組定義形式(至于為什么這種定義方法后面要加 0 可以去數(shù)組章節(jié)看看回顧一下)。

方法2:

這種方法其實原理與1一樣,只不過是這種方法比較簡寫,但是他的內(nèi)部原理還是用數(shù)組存放每一個元素。

#include<stdio.h>void main(){char str[] = "I LOVE CHINA!";printf("%sn",str);printf("%cn",str[3]); }
  • 首先定義了一個字符類型的數(shù)組str。
  • 然后使用 %s 就可以輸出整個字符串了。
  • 同樣由于這個字符串是使用數(shù)組模擬出來的,因此也可以使用數(shù)組的索引方式,用%c作為輸出的格式控制來輸出數(shù)組元素。

02.2 字符串指針

講函數(shù)的時候我們說過,把數(shù)組當(dāng)作參數(shù)傳遞的時候直接傳遞數(shù)組名就可以了,這是因為數(shù)組定義之后,數(shù)組名代表的就是整個數(shù)組的首地址。

具體使用看下邊的代碼:

#include<stdio.h>void main(){char str[] = "I LOVE CHINA!";char *p = &str[0];printf("%sn",p);printf("%cn",p[3]); }

需要注意一點的就是:對于字符串的數(shù)據(jù)的輸出,前面不用加 * 。

其實這個就是個特殊規(guī)定,大家記住就好,因為很多常用的東西都會賦予許許多多的特殊規(guī)定的。

  • 首先定義了一個字符串str。
  • 然后讓指針變量指向str的首地址。
  • 然后,直接把指針變量當(dāng)作數(shù)組名來使用就可以了。

03. 指針的參數(shù)傳遞

03.1

如果我們在main中把一個數(shù)據(jù)a傳入子函數(shù),然后在子函數(shù)中修改這個數(shù)據(jù),大家應(yīng)該能想到,main函數(shù)中的數(shù)據(jù)a是不會變的。程序如下:

#include<stdio.h>void change(char p){p = '6'; } void main(){char a = 'Y';printf("%cn",a);change(a);printf("%cn",a); }

結(jié)果:

分析:

  • 因為當(dāng)實參a作為參數(shù)傳遞的時候,形式參數(shù)p其實接收到的是a的數(shù)據(jù)而已(即相當(dāng)于把a的數(shù)據(jù)拷貝一份給p了)。
  • 所以當(dāng)我們修改p的數(shù)據(jù)的時候,只是修改了p本身的數(shù)據(jù),而與a無關(guān)。

下邊我就演示一下怎樣使用指針的知識,在函數(shù)之間進行參數(shù)的傳遞。

03.2 單個數(shù)據(jù)的傳遞

程序:

#include<stdio.h>void change(int *p){*p = 9; }void main(){int a = 6;int *p = &a;printf("%dn",a);change(p);printf("%dn",a); }

結(jié)果:

分析:

內(nèi)存分析:

  • 直接把數(shù)據(jù)a的地址傳給子函數(shù),然后子函數(shù)根據(jù)傳入的地址進行修改地址中的數(shù)據(jù)。

03.3 數(shù)組數(shù)據(jù)的傳遞

與單個數(shù)據(jù)的傳遞類似,數(shù)組也是傳入地址,然后在子函數(shù)中修改某個地址上的數(shù)據(jù),就可以達到修改這個數(shù)組中的內(nèi)容的效果。

程序:

#include<stdio.h>void change(char *p){p[3] = '6'; }void main(){char str[] = "I LOVE CHINA!";char *p = &str[0];printf("%sn",p);change(p);printf("%sn",p); }

結(jié)果:

分析:

  • 將數(shù)組str的首地址傳入子函數(shù)。
  • 子函數(shù)接收到的地址存放在指針變量p中。
  • 然后就可以把p當(dāng)作數(shù)組操作了。

04. 多重指針

多重指針的使用情況較少,并且挺難的,所以這里講的目的是讓大家了解一下有這么個東西就好了。

程序:

#include<stdio.h> void main(){int a = 6;printf(" a: %dn",a);printf(" &a: %dn",&a);printf("n");int *p1 = &a;printf(" p1: %dn",p1);printf(" &p1: %dn",&p1);printf("n");int **p2 = &p1;printf(" p2: %dn",p2);printf(" &p2: %dn",&p2);printf("n");int ***p3 = &p2;printf(" p3: %dn",p3);printf(" &p3: %dn",&p3);printf("n");int ****p4 = &p3;printf(" p4: %dn",p4);printf(" &p4: %dn",&p4);printf("n");printf(" ****p4: %dn",****p4); }

結(jié)果:

分析:

地址分析:

  • 于是,*p4到p3的值。*p3得到p2的值。*p2到p1的值。*p1到a的值。
  • 于是****p4便得到了a的值6。

05. 結(jié)束

到目前位置,基本上指針的重要知識點就結(jié)束了,其他的一些書本上的知識點,基本上不會怎么用(除非你要搞逆向)。

等到用到的時候,我會在說(但是基本沒啥了)。

老規(guī)矩,下一節(jié)布置習(xí)題。

公眾號:小小猿筆記

總結(jié)

以上是生活随笔為你收集整理的c语言int转字符串_C语言零基础入门-指针-05的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。