教程集 www.jiaochengji.com
教程集 >  脚本编程  >  C语言  >  正文 C 指针*p 与* p的学习笔记

C 指针*p 与* p的学习笔记

发布时间:2018-10-04   编辑:jiaochengji.com
教程集为您提供C 指针*p 与* p的学习笔记等资源,欢迎您收藏本站,我们将为您提供最新的C 指针*p 与* p的学习笔记资源
记得在初学C时我们经常会对于 i与i 不理解,现在我们这里纠结了不止一次,到了指针,还得接着纠结了,下面看几个例子

例子:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy8191')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy8191>

#include <stdio.h>
int data[2] = {100, 200};
int moredata[2] = {300, 400};
int main(void)
{
int * p1, * p2, * p3;
p1 = p2 = data;
p3 = moredata;
printf(" *p1 = %d, *p2 = %d, *p3 = %dn", *p1, *p2, *p3);
printf(" *p1 = %d, * p2 = %d, (*p3) = %dn", *p1 , * p2, (*p3) );
printf(" *p1 = %d, *p2 = %d, *p3 = %dn", *p1, *p2, *p3);
return 0;
}

他的输出是:

*p1 = 100, *p2 = 100, *p3 = 300
*p1 = 100, * p2 = 200, (*p3) = 300
*p1 = 200, *p2 = 200, *p3 = 301

其他的相信都很明确了,那么含糊不清的其实是*p 和* p的区别在哪里了,回忆一下i 和 i的,一个是先使用,再运算,一个是先运算,再使用(见一道题搞懂i 与 i),根据优先级,*与 是一样的,他们是从右向左运算,所以先考虑 的情况,所以前者*p1了一次(使用),在运算(p1 并非*p1 ),而后者则不同。

当然,最好还是应该有括号,比较清晰* (start )

您可能感兴趣的文章:
C 指针*p 与* p的学习笔记
SQLite3数据库操作学习笔记
C语言中函数 与 指针学习笔记
Go 学习笔记 07 | 指针详解
Go语言学习笔记 --- 指针和自增自减运算及相关注意事项
C语言中变量定义/声明深入分析
Go学习笔记:接口实现与指针
C语言复习笔记之数据结构详解
Go指针和unsafe.Pointer有什么区别
Go寻找最长回文字符串——中心扩展法

[关闭]
~ ~