指针数组与数组指针 指针函数与函数指针 的区别

您所在的位置:网站首页 指针函数和函数指针区别 指针数组与数组指针 指针函数与函数指针 的区别

指针数组与数组指针 指针函数与函数指针 的区别

2024-07-11 20:14| 来源: 网络整理| 查看: 265

 指针数组与数组指针  指针数组

指针数组是一个数组,数组的元素保存的是指针;

数组指针

数组指针是一个指针,该指针指向的是一个数组;

#include #define SIZE 5 int main(int argc, char const *argv[]) { int arry[5] = {1,2,3,4,5}; int (*p)[SIZE] = &arry ; //数组指针,该指针指向一个数组; for(int i = 0 ; i < SIZE ; i++) { arry[i] = (i + 1) * 10 ; printf("%d:%d\n",(*p)[i],*(p[i])); printf("%p\t%p\t%p\t%p\n",&(p[i]),p[i],&(*p)[i],&(arry[i])); } printf("\n\n\n"); int *p1[SIZE] = {nullptr,nullptr,nullptr,nullptr,nullptr} ; //指针数组; p1[0] = arry; //p1[[0]是一个指针; //p[0] = arry ; 语法错误 p[0]是一个数组; for(size_t i = 1 ;i < SIZE ; i++) { p1[i] = new int[SIZE] ; for(int j = 0 ; j < SIZE ; j++) { p1[i][j] = i * (j + 1); } } for(size_t i = 0 ;i < SIZE ; i++) { for(size_t j = 0 ; j < SIZE ; j++) { printf("%p:%d\t",&p1[i][j],p1[i][j]); } printf("\n%d:%d\n",(*p)[i],*(p[i])); printf("%p\t%p\t%p\t\n\n",&(p1[i]),p1[i],&(*p1)[i]); } } 指针函数与函数指针 指针函数

指针函数是一个函数,该函数返回的是一个指针;

函数指针

函数指针是一个指针,该指针指向一个函数;

#include int* getIntPoint(const int a) //指针函数,是一个函数 返回一个指针; { int *p = nullptr ; p = new int ; *p = a; return p ; } int main(int argc, char const *argv[]) { int *(*p)(int) = getIntPoint ; //函数指针,该指针指向一个函数; int* pInt = p(5); //使用函数指针; printf("%d\n",*pInt); delete pInt ; return 0; }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3