C学习笔记(2)--指针
一、多文件结构总结
1.子源文件里面包含自己对应的头文件
2.无论是何源文件调用库函数,都需要包含该库函数的声明所在的头文件
3.头文件又叫接口文件,.c对数据和函数进行封装和包含,
.h就是.c对外面的.c的接口
二、指针
1.指针:就是地址变量,指针又叫指针变量,说明它是一个变量,是个专门存放地址值(地址常量)的变量。指针=地址
例如:定义一个指针, int *p,这里面解读两点:首先,这句话声明了一个指针,这个指针是P,不是*P。第二个是声明了一个指向整型变量的指针。
Int a;
Int *p;
p=&a;
*p=a;
#include <stdio.h>
void swap(int *a,int *b);
void main(void)
{
int a=5,b=8;
printf("a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
void swap(int *a,int *b)
{
int k=*a;
*a=*b;
*b=k;
}
2.数组名:是一个地址,并且是一个地址常量(也就是指针常量)
通过指针操作数组:
#include <stdio.h>
void swap(int *a,int *b);
void main(void)
{
char a[5]={'h','e','l','l','o'};
char *p;
int i;
p=a;//把指针常量赋值给指针变量,数组名为一个地址常量
for( i=0;i<5;i++)
{
printf("a[%d]=%c\n",i,p[i]);
}
}
修改成子函数调用
#include <stdio.h>
void printArray(int *p,int n );
void main(void)
{
char a[5]={'h','e','l','l','o'};
printArray(a,5 );
}
void printArray(char *p,int n )
{
int i;
for( i=0;i<n;i++)
{
printf("a[%d]=%c\n",i,p[i]);
}
}