本文目錄一覽:
c語言指針型函數
#includestring.h // 導入頭文件string.h
#includestdio.h // 導入頭文件stdio.h
char *fun(char *t) // 定義函數, 名稱fun, 輸入參數為char *, 返回值為char *
{
char *p = t; // 把t的值賦值給p, 相當於p指向與t相同的字符串
return p + strlen(t) / 2; // strlen返回值為字符串長度, 然後p位移其一半(向下取整)的距離並返回值
}
int main(int argc, char *argv[])
{
char *str = “abcdefgh”; // str指向字符串“abcdefgh”
str = fun(str); // str調用fun函數, 參數為str, 並將返回值賦值給str
puts(str); // 此時str指向e, 輸出為“efgh\n”
return 0;
}
C語言中指針是什麼
我們都知道:C語言中的數組是指 一類 類型,數組具體區分為 int 類型數組,double類型數組,char數組 等等。同樣指針 這個概念也泛指 一類
數據類型,int指針類型,double指針類型,char指針類型等等。
通常,我們用int類型保存一些整型的數據,如 int num = 97 , 我們也會用char來存儲字符: char ch = ‘a’。
我們也必須知道:任何程序數據載入內存後,在內存都有他們的地址,這就是指針。而為了保存一個數據在內存中的地址,我們就需要指針變量。
因此:指針是程序數據在內存中的地址,而指針變量是用來保存這些地址的變量。
C語言:指針型數組是什麼意思?
你的”c
language”
這一串字符串屬於常量,系統自動為其分配空間,然後把首字母所在的空間地址賦給name指針。
就是說name是指向了一個
字符常量
。
c語言指針是什麼意思!
指針其實是一個整形變量,與其它數據不同的是,它的作用是用來存儲其它變量的地址。指針(Pointer)是編程語言中的一個對象,利用地址,它的值直接指向(points to)存在電腦存儲器中另一個地方的值。由於通過地址能找到所需的變量單元,可以說,地址指向該變量單元。
因此,將地址形象化的稱為“指針”。意思是通過它能找到以它為地址的內存單元。
再打個比方:有個人讓你去麥當勞幫我買個雪糕,那麼麥當勞是這個變量a,但是那個人現在把麥當勞所在的地址寫在紙上給你,那麼這張紙就可以看做一個指向麥當勞的指針。
擴展資料:
舉例說明:
int p; //這是一個普通的整型變量。
int *p; //首先從P 處開始,先與*結合,所以說明P 是一個指針,然後再與int 結合,說明指針所指向的內容的類型為int 型.所以P是一個返回整型數據的指針。
int p[3]; //首先從P 處開始,先與[]結合,說明P 是一個數組,然後與int 結合,說明數組裡的元素是整型的,所以P 是一個由整型數據組成的數組 。
int *p[3]; //首先從P 處開始,先與[]結合,因為其優先級比*高,所以P 是一個數組,然後再與*結合,說明數組裡的元素是指針類型,然後再與int 結合,說明指針所指向的內容的類型是整型的,所以P 是一個由返回整型數據的指針所組成的數組。
int (*p)[3]; //首先從P 處開始,先與*結合,說明P 是一個指針然後再與[]結合(與”()”這步可以忽略,只是為了改變優先級),說明指針所指向的內容是一個數組,然後再與int 結合,說明數組裡的元素是整型的.所以P 是一個指向由整型數據組成的數組的指針。
int **p; //首先從P 開始,先與*結合,說是P 是一個指針,然後再與*結合,說明指針所指向的元素是指針,然後再與int 結合,說明該指針所指向的元素是整型數據。由於二級指針以及更高級的指針極少用在複雜的類型中,所以後面更複雜的類型就不考慮多級指針了,最多只考慮一級指針。
int p(int); //從P 處起,先與()結合,說明P 是一個函數,然後進入()里分析,說明該函數有一個整型變量的參數,然後再與外面的int 結合,說明函數的返回值是一個整型數據。
Int (*p)(int); //從P 處開始,先與指針結合,說明P 是一個指針,然後與()結合,說明指針指向的是一個函數,然後再與()里的int 結合,說明函數有一個int 型的參數,再與最外層的int 結合,說明函數的返回類型是整型。
所以P 是一個指向有一個整型參數且返回類型為整型的函數的指針。
int *(*p(int))[3]; //可以先跳過,不看這個類型,過於複雜從P 開始,先與()結合,說明P 是一個函數,然後進入()裡面,與int 結合,說明函數有一個整型變量參數,然後再與外面的*結合,說明函數返回的是一個指針。
然後到最外面一層,先與[]結合,說明返回的指針指向的是一個數組。然後再與*結合,說明數組裡的元素是指針,然後再與int 結合,說明指針指向的內容是整型數據.所以P 是一個參數為一個整數據且返回一個指向由整型指針變量組成的數組的指針變量的函數.
參考資料:百度百科-指針
C語言指針基本概念及其指針變量的定義是什麼
指針是常見間接訪問方式.指針就像一個快捷方式,它指向內存的一個地址,可以通過指針就可以間接的訪問到數據。對於計算機,訪問內存的方式有兩種,直接訪問和間接訪問。直接訪問通過就是通過變量名稱去訪問。指針概念是構成C/C++的重要元素之一,是變量的一種類型,存放的是指定類型數據的地址,而同類型變量存放的是數據。
指針變量:就是一個變量,其值是可變的,與整形變量、浮點變量等等的命名規則完全相同。 “指針”是概念,“指針變量”是具體實現。指針類型說明,即定義變量為一個指針變量; 指針變量名; 變量值(指針)所指向的變量的數據類型。
擴展資料:
與其他高級編程語言相比,C 語言可以更高效地對計算機硬件進行操作,而計算機硬件的操作指令,在很大程度上依賴於地址。指針提供了對地址操作的一種方法,因此,使用指針可使得 C 語言能夠更高效地實現對計算機底層硬件的操作。另外,通過指針可以更便捷地操作數組。在一定意義上可以說,指針是 C 語言的精髓。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/271681.html