当前位置: 首页> 汽车> 报价 > 网络广告公司怎么做_建站小程序编辑器闪亮登场_宁波seo教程_东莞做网站哪家公司好

网络广告公司怎么做_建站小程序编辑器闪亮登场_宁波seo教程_东莞做网站哪家公司好

时间:2025/7/11 7:55:54来源:https://blog.csdn.net/m0_63893772/article/details/145780326 浏览次数: 0次
网络广告公司怎么做_建站小程序编辑器闪亮登场_宁波seo教程_东莞做网站哪家公司好

一、指针常量和常量指针的区别

1. 指针常量

指针常量:指针本身是常量,初始化后不能指向其他地址,但可以通过指针指向的地址修改目标值

格式为:

int * const p //指针常量

示例:

int a,b;
int * const p=&a //指针常量
//那么分为一下两种操作
*p=9;//操作成功
p=&b;//操作错误

指针常量: 指针指向的地址不能改变,但地址里面的值可以改变。

2. 常量指针

含义:指针指向的内容是常量,不能通过该指针修改目标值,但指针本身可以指向其他地址

格式:

const int *p = &a; //常量指针

示例:

int a,b;const int *p=&a //常量指针
//那么分为一下两种操作
*p=9;//操作错误
p=&b;//操作成功

常量指针: 指针指向的地址可以改变,但地址里面的值不可以改变。 

3.指向常量的常指针

含义:指针指向的地址不能改变,指针指向地址中的值也不能改变

格式:

const int * const b = &a;//指向常量的指针常量

参考:指针常量与常量指针的区别-CSDN博客

【C/C++】 常量指针,指针常量、指向常量的常指针详解-CSDN博客

二 、指针函数和函数的区别

1. 指针函数

定义:指针函数是一个 返回指针的函数,即函数的返回值是一个指针。

格式: 返回类型* 函数名(参数列表)

函数返回一个指针,指向某种类型的数据。

常用于动态内存分配、返回数组或结构体指针等场景。

看看下面这个函数声明:

int fun(int x,int y);

这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,是一个数值。
接着看下面这个函数声明:

int *fun(int x,int y);

这和上面那个函数唯一的区别就是在函数名前面多了一个*号,而这个函数就是一个指针函数。其返回值是一个 int 类型的指针,是一个地址。

这样描述应该很容易理解了,所谓的指针函数也没什么特别的,和普通函数对比不过就是其返回了一个指针(即地址值)而已。

 代码实例(返回数组):

#include <stdio.h>
#include <stdlib.h>// 指针函数:返回动态分配的数组
int* createArray(int size) {int* arr = (int*)malloc(size * sizeof(int));for (int i = 0; i < size; i++) {arr[i] = i + 1;}return arr;  // 返回指针
}int main() {int* arr = createArray(5);  // 调用指针函数for (int i = 0; i < 5; i++) {printf("%d ", arr[i]);  // 输出:1 2 3 4 5}free(arr);  // 释放内存return 0;
}

 示例代码(返回结构体):

#include <stdio.h>typedef struct {int a;int b;
} Stu;Stu getStu(int x, int y) {Stu result;result.a = x;result.b = y;return result;
}int main() {Stu test = getStu(2, 3);printf("%d %d\n", test.a, test.b);return 0;
}

2. 函数指针

定义:函数指针是一个 指向函数的指针,即指针变量存储的是函数的地址。

语法返回类型 (*指针名)(参数列表)

int (*fun)(int x,int y);

函数指针是需要把一个函数的地址赋值给它,有两种写法:

fun = &Function;
fun = Function;

可以动态调用不同的函数。

常用于回调函数、函数表、策略模式等场景。

示例:

#include <stdio.h>// 定义两个函数
int add(int a, int b) {return a + b;
}int subtract(int a, int b) {return a - b;
}// 定义函数指针
int (*funcPtr)(int, int);int main() {// 指向 add 函数funcPtr = &add;printf("Add: %d\n", funcPtr(5, 3));  // 输出:8// 指向 subtract 函数funcPtr = subtract;printf("Subtract: %d\n", funcPtr(5, 3));  // 输出:2return 0;
}

二者区别
通过以上的介绍,应该都能清楚的理解其二者的定义。那么简单的总结下二者的区别:

定义不同
指针函数本质是一个函数,其返回值为指针。
函数指针本质是一个指针,其指向一个函数。

写法不同
指针函数:int* fun(int x,int y);
函数指针:int (*fun)(int x,int y);
可以简单粗暴的理解为,指针函数的*是属于数据类型的,而函数指针的星号是属于函数名的。
再简单一点,可以这样辨别两者:函数名带括号的就是函数指针,否则就是指针函数。

参考:函数指针和指针函数用法和区别-CSDN博客

关键字:网络广告公司怎么做_建站小程序编辑器闪亮登场_宁波seo教程_东莞做网站哪家公司好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: