指针的常用应用基本上可以了,
C语言指针2 多多指教
//该程序只是伪算法,旨在了解掌握指针的应用
#include "stdio.h"
#include "assert.h" 课致力于指针的运算*/
int main()
{
/*下面部分显示 指针的算数运算*/
int a[10],*p;
p=&a[0]; //此时p指向数组第一个元素地址
*p=5; //此时a[0]=5
int *q;
p = &a[1]; //p->a[1]
q = p + 3; //p->a[1],q->a[4] //注意:不是*q=*p+3
p += 6; //p->a[7] q->a[4]
//相同的,指针可以加整数,减整数,两个指针相加减
/*下面是用于指针的数组处理部分*/
int a1[10]={23,345,3,65,57,23,7,8,4,5};
int sum,*p1;
sum=0;
//将p先指向a1[0],到地址加到最后, 将每个地址对应的数据相加
for(p=&a1[0]; p<&a1[10]; p1++)
{
sum += *p1;
}
*a = 7;//此时a[0] = 7
*(a+1) = 12; //此时 a[1] = 12
//则上述函数循环就可以改写为
for(p1=a; p1<a+10; p1++) sum += *p1;
/*运算符和++组合*/
/*
a[i++] = j;
等价于
p=&a[0]; *p++ = j; 等价于 *(p++) = j;
注意:
*p++ 或 *(p++) 自增前表达式的值是*p,然后是自增p
(*p)++ 自增前表达式的值是*p 然后是 自增*p
*/
printf("\nHello world !\n");
return 0;
}