怎样做 网站做seo,建设网站公司谁家好,长沙大型网站设计公司,广东中山市做网站声明 为了方便理解#xff0c;本文所举例中采用的数据类型都默认用 int 类型。 问题 对比下面不同的书写方式#xff0c;请仔细体会区别与含义#xff1a; int* p;
int *p; 您感到什么了吗#xff1f; 解释 首先要说明#xff0c;在现代中#xff0c;很多C编…声明 为了方便理解本文所举例中采用的数据类型都默认用 int 类型。 问题 对比下面不同的书写方式请仔细体会区别与含义 int* p;
int *p; 您感到什么了吗 解释 首先要说明在现代中很多C编程规范中建议星号*与 int 结合而不是与后面的变量结合。 这样做比较清晰不容易看错。如下所示变量 p 里面是记录了变量 num 的地址信息 int* p num; 但是这样做也会产生一定的问题如下所示 int* p1, *p2, p3;// 请注意上面只定义了两个指针变量分别是 p1 和 p2而 p3 只是普通变量int类型 解决这个问题也很简单我们只需要规定一行只能声明一个变量即可特别是对指针类型来说。 int* p1; // 指针
int* p2; // 指针
int p3; // 普通变量 值得说明的是这只是一种规范一种建议如果不遵守程序也不会报错。 其次要解释的是C 语言设计的本意并不是把int*作为一个整体。 它的设计本意是解一个方程请看下面的例子 先定义一个变量即将 (*p) 当作一个整体然后让*p的类型是 int。 从而就能反推出 p 是 int 指针。 这种解方程的语法含义才是 int *p1, *p2写法的由来。 同理函数指针也是这样int (*func)(); 最早调用是必须写成 (*func)() 的但是经过修改后写 func() 也可以了。 但是本意是解方程这种思想。 后来C的加入迫使C的规矩出现了一些变化。 但是不论如何建议用自己最熟悉的就行。 而笔者本人是习惯了int* p; 这种写法。 补充 不管是哪种方式有一个通用的方法可以快速区分到底是指针还是普通变量——方法就是看这个变量前面有没有 * 如果有 * 就代表它是指针如果没有 * 那就它就是普通的变量。 int* p; // p 前面有*所以是指针
int *p1,*p2, p3; // p1 前面有*p2前面有*p3前面没有*所以p1,p2是指针而p3是普通变量 OK就补充这么多如果有什么错误的地方欢迎小伙伴们的指正。