最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言指針入門的簡單實例教程

 更新時間:2021年01月12日 10:23:32   作者:LeoZhao  
這篇文章主要給大家介紹了關(guān)于C語言指針入門的簡單實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

c語言的指針的存在使得c語言對硬件的操控,以及靈活性得到了極大的提高。

但是指針的使用存在著很多難點問題。

#include<stdlib.h>
#include<stdio.h>
//這里的函數(shù)是指針做參數(shù)的例子,要知道這個特性可以彌補c語言只能有一個返回值的特性。
void swap1(int *pa,int *pb){
 int t =*pa;
 *pa=*pb;
 *pb=t;
}
//main()函數(shù)必須要返回一個數(shù)字
int main(){
 int a =15;
 int b=10;
 int* t;
 t=&b;
 a=b;
 b=*t;
 printf("%d\n",b);
 swap1(&a,&b);
 printf("%p\t%p",a,b); 
 return 0;
}

這里我們先定義兩個整型的變量a,b

然后再定義一個臨時的指針變量,用來存儲中間變量

然后將b的變量的內(nèi)存地址賦值給t,注意這里 t  代表的是內(nèi)存地址

然后把b的值給a,再用b接受t地址所存儲的變量, 注意這里的*t是指t這個地址所指的那個變量。

指針與數(shù)組

其實數(shù)組的int a[10];

里來說a其實是這個數(shù)組的第一個元素的a[0]的指針

所以數(shù)組變量本身就是表達地址,所以

int a[10];
 int *p=a; //無需用&取地址

但是數(shù)組的單元表達的是變量,需要用&取地址
 a==&a[0];

[]運算符可以對數(shù)組做,也可以對指針做:


 p[0] <==>a[0];
這里的p[0]相當于*p

*a可以表示a[0]

數(shù)組變量是const的指針

const 這個修飾符的作用就是表明一個變量是指定的值不能改變了

int* const p=&i; //p是const

*q=26;//OK
q++; //ERROR

int ls=58;
 int ls1=64;
 int* const q=&ls;
 *q =10;
 *q=20;
// q = &ls1; 這句是不能通過編譯的,因為這個指針是不能指向其他位置的地址
 //執(zhí)行成功說明這里的指針變量是可以被改變的
 ls=36 ;
 printf("\n%d",*q);
 //然后我們來看另外一種情況
 int P1=10;
 int P2=20;
 int const *T=&P1;
 T=&P2;//執(zhí)行結(jié)果為30
 //*T =15;這里是不能通過編譯的,因為這個指針指向的位置存儲的變量是不能賦值改變的。
 P2=30;
 printf("\n%d",*T);
 //關(guān)鍵在于這里的const是在*的前面還是后面決定的
 return 0;
void mai(const int*p){

  int *ls=*p;
   printf("ls的地址:%p",ls);
}
這里我們傳入了一個指針,但是在函數(shù)里,是不能改變這個指針所指向的值的

 指針的運算

#include<stdio.h>
#include<stdlib.h>

int main(){
 int i,j;
 i=10;j=12;
 printf("i,j:%d,%d\n",&i,&j);
 printf("i,j:%d,%d",*&i+1,&j);
 printf("\n&i-&j:%d",(&i)-(&j));//這里兩個地址做差其實是地址差/類型所占的位數(shù)

 int *p;
 p=&i;
 *p++;//實際上是*(p++);++優(yōu)先級比*高;數(shù)組遍歷
 printf("\n*p:%d",*p);
 return 0;
}

指針的類型轉(zhuǎn)換

void*表示不知道指向什么東西的指針

指針變量的大小是相同的但是,指針是有類型的差別

總之指針的作用

1、需要傳入較大的數(shù)據(jù)的時候用做參數(shù)

2、傳入數(shù)組后對數(shù)組做操作

3、函數(shù)返回的結(jié)果不止一個的時候可以用指針帶出(c只能return一個變量,或者值)

     需要要用函數(shù)來修改不止一個變量

4、動態(tài)申請內(nèi)存.......

具體的后續(xù)會更。

總結(jié)

到此這篇關(guān)于C語言指針入門的簡單實例的文章就介紹到這了,更多相關(guān)c語言指針實例內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Effective?C++?學習筆記

    Effective?C++?學習筆記

    這篇文章主要介紹了Effective?C++?學習筆記,想學習Effective?C++的朋友可以參考一下
    2023-08-08
  • 詳解C++編程中的文件流與字符串流

    詳解C++編程中的文件流與字符串流

    這篇文章主要介紹了C++編程中的文件流與字符串流,是C++入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖

    利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖

    這篇文章主要介紹了如何利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖的繪制,文中的示例代碼講解詳細,對我們學習Matlab有一定的幫助,感興趣的可以了解一下
    2022-05-05
  • C++的std::vector<bool>轉(zhuǎn)儲文件問題

    C++的std::vector<bool>轉(zhuǎn)儲文件問題

    這篇文章主要介紹了C++的std::vector<bool>轉(zhuǎn)儲文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 使用C++實現(xiàn)Range序列生成器的示例代碼

    使用C++實現(xiàn)Range序列生成器的示例代碼

    在C++編程中,經(jīng)常需要迭代一系列數(shù)字或其他可迭代對象,本文將使用C++來實現(xiàn)一個簡單的Range封裝,文中的示例代碼講解詳細,感興趣的可以了解下
    2023-11-11
  • C語言指針詳解之野指針

    C語言指針詳解之野指針

    這篇文章主要為大家介紹了C語言野指針,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • Qt讀寫CSV文件的三種方式及優(yōu)劣對比

    Qt讀寫CSV文件的三種方式及優(yōu)劣對比

    最近的要用到CSV格式的數(shù)據(jù),所以這篇文章講述一下QT讀取CSV文件數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Qt讀寫CSV文件的三種方式及優(yōu)劣對比的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • C/C++中g(shù)etline函數(shù)案例總結(jié)

    C/C++中g(shù)etline函數(shù)案例總結(jié)

    這篇文章主要介紹了C/C++中g(shù)etline函數(shù)案例總結(jié),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C語言如何實現(xiàn)一些算法或者函數(shù)你知道嗎

    C語言如何實現(xiàn)一些算法或者函數(shù)你知道嗎

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)一些算法或者函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++ move()函數(shù)案例詳解

    C++ move()函數(shù)案例詳解

    這篇文章主要介紹了C++ move()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論

山丹县| 水城县| 大港区| 云梦县| 革吉县| 绍兴市| 田东县| 承德市| 新干县| 瓦房店市| 金溪县| 南华县| 东海县| 德清县| 准格尔旗| 泰安市| 昌乐县| 尚志市| 财经| 平顺县| 六盘水市| 富川| 北川| 双峰县| 万州区| 梅州市| 陆河县| 孙吴县| 姚安县| 临泉县| 瑞安市| 潼关县| 惠水县| 金山区| 高州市| 永春县| 稻城县| 明水县| 安仁县| 永德县| 柏乡县|