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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言之指针

發布時間:2023/12/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言之指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.指針

 指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值;

 指針的定義格式:

   數據類型 * 變量名稱;

  注意:

    1.定義時確定了指針變量的類型,那么該指針就只能保存對應類型變量的地址.

int number = 10; int *pointer ; //定義了一個int 類型的指針 pointer = &number;//該指針變量存儲了number變量的地址,我們就認為pointer指針指向了number

?    2.指針只能存放地址.

    3.同一個變量可以有多個指針指向他

int number = 10; int *pointerOne = &number; int *pointerTwo = &number; //有兩個指針指向了number變量

?    4.指針可以更改指向的變量

int numberOne = 10; int numberTwo = -1; int *pointer = &numberOne;//指針指向了numberOne int *pointer = &numberTwo; //指針指向了numberTwo

?    5不能訪問野指針(沒有指向的指針成為野指針)

2.字符串指針

在C中,字符串有兩種形式來存儲字符串,1.通過數組來存儲. 2.通過指針

兩者的區別:  

    1.通過數組存儲的字符串,它是一個變量,存儲在內存的棧中,可以被修改.

    2.字符串指針,它是一個常量,存儲在常量區,不能別修改.

?

3.指針數組

用來存儲指針的數組

定義格式: 數據類型 *數組名稱[數組長度]

char *str1 = "aaa";char *str2 = "bbb";char *str3 = "ccc";char *array[] = {str1, str2, str3 };for (int i = 0; i < 3; i ++){printf("%s\n",array[i]);}

?

4.指向函數的指針

定義格式:返回值類型 (* 指針變量名稱) (函數參數列表);

  注意:

    1.函數也會被分配存儲空間,函數名保存了函數的地址,與數組類似.

    2.C語言中函數中不能定義函數,所以我們可以利用函數指針在函數內部來調用不同的函數

    

#import <Foundation/Foundation.h> void upChar(char *charValue); void lowerChar(char *charValue); void changeChar(char str[],void (* style)(char *));int main(int argc, const char * argv[]) {//將輸入的字符串大寫轉小寫,小寫轉大寫//1.提示用戶輸入printf("請輸入一段英文");char str[100] = {0};gets(str); //此方法不安全changeChar(str,upChar);//大寫changeChar(str, lowerChar);//小寫printf("%s",str);return 0; }//更改字符串 void changeChar(char str[],void (* style)(char *)) {char *pointer = str;while (*pointer != '\0')//取出字符串的每個字母{style(pointer);pointer++; //指針內的地址遞增,遞增單位是數據類型所占字節數} }//小寫 void upChar(char *charValue) {if (*charValue >= 'a' && *charValue <= 'z'){*charValue = *charValue - ('a' - 'A');} }//大寫 void lowerChar(char *charValue) {if (*charValue >= 'A' && *charValue <= 'Z'){*charValue = *charValue + ('a' - 'A');} }

?

轉載于:https://www.cnblogs.com/kk657483726/p/5135357.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的C语言之指针的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。