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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言指针详解一

發(fā)布時(shí)間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言指针详解一 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

c語言指針詳解一

    • 什么是指針
    • 整型指針和字符指針
    • 數(shù)組指針(是指針)的解析與指針數(shù)組(是數(shù)組)的區(qū)別
    • 函數(shù)指針

什么是指針

①指針是個(gè)變量,用來存放地址
②指針的大小固定是4/8個(gè)字節(jié)(32位/64位平臺(tái))。
③指針是有類型的,指針的類型決定了指針的±整數(shù)的步長(zhǎng),指針解引用操作時(shí)的權(quán)限。

指針可以根據(jù)指針指向的變量的數(shù)據(jù)的類型來分類。
有整型指針,字符指針,數(shù)組指針,函數(shù)指針等。

整型指針和字符指針

例如:

#include<stdio.h> int main() {int a = 5;int* p = &a;//整型指針--p存放int(整型)的地址的指針變量char c = 'a';char* cr = &c;//字符指針--cr存放char(字符)的地址的指針變量printf("%d ", *p);//p存放的是&a(也就是a的地址值)通過“*”來對(duì)p進(jìn)行解引用---通過p存放的地址找到aprintf("%c ", *cr);//同上return 0; }

p是整型指針–指向整型的指針–可以用來存放整型的地址
c是字符指針–指向字符的指針–可以用來存放字符的地址

#include<stdio.h> int main() {char str1[] = "abcdef";char* arr = str1;printf("%p \n", arr);printf("%p \n", arr + 1);printf("**************\n");int str[] = { 1,2,3,4,5,6,7 };int* p = str;printf("%p\n", str);printf("%p\n", str + 1);return 0; }


從這里可以看出來上面的
③指針是有類型的,指針的類型決定了指針的±整數(shù)的步長(zhǎng),指針解引用操作時(shí)的權(quán)限。
這一點(diǎn),因?yàn)閏har類型是占一個(gè)字節(jié),所以其指針的+1所打印出來的地址值也是+1;
而int類型是占四個(gè)字節(jié)的,所以其指針的+1所打印出來的地址值是+4;

數(shù)組指針(是指針)的解析與指針數(shù)組(是數(shù)組)的區(qū)別

#include<stdio.h> int main() {int* p = NULL;//p是整型指針--指向整型的指針--可以用來存放整型的地址char* d = NULL;//d是字符指針--指向字符的指針--可以用來存放字符的地址//數(shù)組指針--指向數(shù)組的指針--可以用來存放數(shù)組的地址int arr[7] = { 1,2,3,4,5,6,7 };int(*str)[7] = &arr;//存放的是數(shù)組的地址--數(shù)組指針//*p是指針指向后面的數(shù)組,上面的p就是數(shù)組指針 int a = 1;int b = 2;int c = 3;int arr2[10] = { 0 };//整型數(shù)組--存放整型的數(shù)組char arr3[10] = { 0 };//字符數(shù)組--存放字符的數(shù)組int* arr1[7] = {&a,&b,&c};//指針數(shù)組--存放指針的數(shù)組//[]的優(yōu)先級(jí)要高于*的優(yōu)先級(jí)return 0; }

數(shù)組地址的解釋
int arr[10] = { 0 };
arr–首元素的地址
&arr[0]–首元素的地址
&arr–數(shù)組的地址

函數(shù)指針

函數(shù)指針—指向函數(shù)的指針–存放函數(shù)地址的一個(gè)指針
與數(shù)組指針類似

#include<stdio.h> int ADD(int x, int y)//函數(shù) {return x + y; } int main() {//&函數(shù)名 和函數(shù)名都是函數(shù)的地址int (*p)(int, int) = ADD;printf("%d ", (*p)(1, 2));//3return 0; }

總結(jié)

以上是生活随笔為你收集整理的C语言指针详解一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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