一、多文件结构总结

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

}

}

C学习笔记(2)--指针的更多相关文章

  1. 《C语言学习笔记》指针数组及其应用

    C语言中,最灵活但又容易出错的莫过于指针了.而指针数组,是在C中很常见的一个应用.指针数组的意思是说,这个数组存储的所有对象都为指针.除了存储对象为指针,即一个地址外,其它操作和普通数组完全一样. # ...

  2. c++学习笔记——智能指针

    智能指针是为了便于管理动态内存,能够自动管理释放所指向的对象. 智能指针共有三种:1.shared_ptr允许多个指针指向同一个对象:2.unique_ptr独占所指向的对象:3.weak_ptr是一 ...

  3. C学习笔记 - 指针

    指针与数组 ,,,,}; int *p; p = a; printf("*a = %d\n",*a); printf("*p = %d\n",*p); prin ...

  4. Objective-C 学习笔记(五) 指针

    Objective-C 指针 每一个变量是一个内存位置和每一个存储单元都有其定义的地址,可以使用符号(&)的运算符,它表示内存中的地址访问. a. 我们定义一个指针变量 b. 分配一个指针变量 ...

  5. go学习笔记-语言指针

    语言指针 定义及使用 变量是一种使用方便的占位符,用于引用计算机内存地址.取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址. 一个指针变量指向了一个值的内存地址.类似于变量和常量, ...

  6. C语言学习笔记--数组指针和指针数组

    C 语言中的数组有自己特定的类型,数组的类型由元素类型和数组大小共同决定.(如 int array[5]类型为 int[5]) 1.定义数组类型 C 语言中通过 typedef 为数组类型重命名:ty ...

  7. IOS开发学习笔记006 - 指针

    C语言 指针 简单使用如下: int *p;//定义 int a = 10; p = &a;//赋值 int * b = &a;//定义并赋值 定义格式:类型 *指针变量名: 注意事项 ...

  8. C++学习笔记1_ 指针.引用

    1.引用的本质struct typeA{ int &a;}struct typeB{ int *a;}int main(void){ cout<<sizeof(struct typ ...

  9. 【C语言学习笔记】指针

    用来存放一个变量地址的变量就叫指针变量.指针变量也是有类型约束的,一般什么类型的指针指向什么类型的变量. 指针之所以叫变量,是因为它里面所存放的变量的地址也是不断变化的,指针是可以移动的. 定义格式: ...

  10. Go语言学习笔记(6)——指针

    指  针 指针: 存储另一个变量的内存地址的变量: Go语言的取地址符号也是& 1. 声明指针: var needle_name *type var b int = 10 var a *int ...

随机推荐

  1. ASP.NET下使用Combres对JS、CSS合并和压缩

    记录一下,如何简单快捷压缩js和css,通过合并来减少请求次数. 用到的网址: http://www.nuget.org/packages/combres/ https://github.com/bu ...

  2. 爬虫浅谈一:一个简单c#爬虫程序

    这篇文章只是简单展示一个基于HTTP请求如何抓取数据的文章,如觉得简单的朋友,后续我们再慢慢深入研究探讨. 图1: 如图1,我们工作过程中,无论平台网站还是企业官网,总少不了新闻展示.如某天产品经理跟 ...

  3. Sql Server字符串拆分(Split)方法汇总

    详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak--方法0:动态SQL法 declar ...

  4. 无废话网页重构系列——(2)来套Web重构装备

    本篇主要从语言入门.规范.工具.构建.库.框架.版本控制等各方面展开,篇幅会有点长,涉及到的工具类,会另开博文详细介绍. 另外说明Web重构是Web前端的开始,主要侧重Web页面,如实现布局与兼容,符 ...

  5. 2017 NAIPC A:Pieces of Parentheses

    my team solve the problem in the contest with similar ideathis is a more deep analysis The main idea ...

  6. 《Python黑帽子:黑客与渗透测试编程之道》 Scapy:网络的掌控者

    窃取email认证: 测试代码: #!/usr/bin/python #coding=utf-8 from scapy.all import * #数据包回调函数 def packet_callbac ...

  7. windows系统上安装与使用Android NDK r5

    windows系统上安装与使用Android NDK r5  很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...

  8. performSelector 的缺点

    在内存管理方面容易有缺失.无法确定将要执行的选择子具体是什么,所以 ARC 无法插入适当的内存管理方法 选择子的返回类型只能是 id,最多有两个参数. 所以尽量避免使用这个东西. 下面来自苹果的文档 ...

  9. Web端测试和移动端测试

    之前参加的项目有涉及Web端测试和移动端测试,简单的记录下他们之间的区别:   1.记录bug 在Web端可以通过系统自带的截图和QQ截图等方式来截取bug的图片,对于错误的地方可以用工具自带的标识来 ...

  10. nginx配置跨域、gzip加速、代理详细讲解

    1.配置跨域 这个很简单,直接打开配置nginx.conf ,在http下配置下面三行代码:当然如果你是想某一个虚拟主机下跨域,那就在哪个server下面添加 add_header Access-Co ...