指针数组与数组指针 指针函数与函数指针 的区别 |
您所在的位置:网站首页 › 指针函数和函数指针区别 › 指针数组与数组指针 指针函数与函数指针 的区别 |
指针数组与数组指针
指针数组
指针数组是一个数组,数组的元素保存的是指针; 数组指针数组指针是一个指针,该指针指向的是一个数组; #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 |