C语言指针,你还觉得难吗?

在研究式学习-c语言程序设计指针式这样介绍的:

内存中存储变量的第一个单元的地址 称为指针,存放指针的变量称为指针变量;

变量的访问方式有:

直接访问方式:按变量名查找其首地址

间接访问方式:通过指针访问

int swap(int p,int q)
{
int temp;
temp=p;
p=q;
q=temp;
}

如果要用引用的话,也可以实现两个数的交换;

例如:

int swap(int &p,int &q)
{
int temp;
temp=p;
p=q;
q=temp;
}

现在理解了这个函数为什么要用指针了;

因为C语言中实参变量和形参变量之间的数据传递是单向的值传递方式,虽然运用指针被调函数不能改变实参指针变量的值,但可以改变实参指针变量指向的变量的值;从而实现值的交换;

指针指向函数的入口地址:p=swap

一维数组与指针:

指针指向数组时的运算:指针加上(减去)一个整数,得到的结果仍然是指针;表示移动位置;

自增和自减运算:

int a[10],*p=&a[3];

自增和自减的优先级大于*

指针实习字符串的操作:

*s!='\0'

测试字符串长度的函数:

while(*s++)

len++;

字符串复制函数:

while((*dest++=*src++)!='\0')

字符数组中的字符串逆序存放:

#include <stdio.h>
#include <STRING.H>
void srev(char *s)
{

char *head=s,*tail;
char temp;
tail=s+(strlen(s)-1);
while (head<tail)
{
temp=*tail;
*tail=*head;
*head=temp;
head++;
tail--;

}
}
void main()
{
char test[]={"hello word"};
printf("%s\n",test);
srev(test);
printf("%s\n",test);

}

用指针实现数据的动态管理:

采用动态的可变的数据结构

上一篇:Spark SQL Catalyst源代码分析之TreeNode Library


下一篇:memcached全面剖析–2. 理解memcached的内存存储