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]);
}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS开发攻城狮的集散地

run timeimport : 成员变量、类、方法

19290
来自专栏xingoo, 一个梦想做发明家的程序员

const修饰的双重指针赋值解惑

在c程序中,我们可能经常会使用到指针之间的赋值。 传统的赋值操作: char *cp = "c"; const char *ccp; ccp = cp; pri...

23290
来自专栏Python小屋

Python中提供的各种队列结构

Python标准库queue提供了LILO队列类Queue、LIFO队列类LifoQueue、优先级队列类PriorityQueue,标准库collection...

42090
来自专栏大前端_Web

详解javascript作用域和闭包

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/deta...

12940
来自专栏书山有路勤为径

最小窗口子串

已知字符串S与字符串T,求在S中的最小窗口(区间),使得这个区间中包含 了字符串T中的所有字符。 例如: S = “ADOBECODEBANC” ;T = "...

6410
来自专栏mukekeheart的iOS之旅

OC学习10——内存管理

1、对于面向对象的语言,程序需要不断地创建对象。这些对象都是保存在堆内存中,而我们的指针变量中保存的是这些对象在堆内存中的地址,当该对象使用结束之后,指针变量指...

24150
来自专栏kalifaの日々

美团北京视频面试题目

1.用过makefile吗 2.python的多线程是真正的多线程吗? 3.写一个冒牌排序,再写一个递归的冒泡排序 4.写一个单链表反转,十几行代码以内 ...

10420
来自专栏IT可乐

深入理解计算机系统(3.5)------特殊的算术操作指令

  在上一篇博客 算术和逻辑操作 我们介绍了如下图几种常用的算术逻辑指令,但是大家发现没,这几种指令如果在 IA32 上只能操作32位寄存器,比如我用乘法指令I...

21270
来自专栏DT乱“码”

Java中实现多线程有两种途径

Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口. Runnable接口非常简单,就定义了一个方法run(),继承Runnable...

22450
来自专栏java学习

Java每日一练(2017/7/24)

本期题目: (单选题) 1、与InputStream流相对应的Java系统的“标准输入对象”是() A System.in B System.out C Sy...

37280

扫码关注云+社区

领取腾讯云代金券