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]);
}
}
C学习笔记(2)--指针的更多相关文章
- 《C语言学习笔记》指针数组及其应用
C语言中,最灵活但又容易出错的莫过于指针了.而指针数组,是在C中很常见的一个应用.指针数组的意思是说,这个数组存储的所有对象都为指针.除了存储对象为指针,即一个地址外,其它操作和普通数组完全一样. # ...
- c++学习笔记——智能指针
智能指针是为了便于管理动态内存,能够自动管理释放所指向的对象. 智能指针共有三种:1.shared_ptr允许多个指针指向同一个对象:2.unique_ptr独占所指向的对象:3.weak_ptr是一 ...
- C学习笔记 - 指针
指针与数组 ,,,,}; int *p; p = a; printf("*a = %d\n",*a); printf("*p = %d\n",*p); prin ...
- Objective-C 学习笔记(五) 指针
Objective-C 指针 每一个变量是一个内存位置和每一个存储单元都有其定义的地址,可以使用符号(&)的运算符,它表示内存中的地址访问. a. 我们定义一个指针变量 b. 分配一个指针变量 ...
- go学习笔记-语言指针
语言指针 定义及使用 变量是一种使用方便的占位符,用于引用计算机内存地址.取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址. 一个指针变量指向了一个值的内存地址.类似于变量和常量, ...
- C语言学习笔记--数组指针和指针数组
C 语言中的数组有自己特定的类型,数组的类型由元素类型和数组大小共同决定.(如 int array[5]类型为 int[5]) 1.定义数组类型 C 语言中通过 typedef 为数组类型重命名:ty ...
- IOS开发学习笔记006 - 指针
C语言 指针 简单使用如下: int *p;//定义 int a = 10; p = &a;//赋值 int * b = &a;//定义并赋值 定义格式:类型 *指针变量名: 注意事项 ...
- C++学习笔记1_ 指针.引用
1.引用的本质struct typeA{ int &a;}struct typeB{ int *a;}int main(void){ cout<<sizeof(struct typ ...
- 【C语言学习笔记】指针
用来存放一个变量地址的变量就叫指针变量.指针变量也是有类型约束的,一般什么类型的指针指向什么类型的变量. 指针之所以叫变量,是因为它里面所存放的变量的地址也是不断变化的,指针是可以移动的. 定义格式: ...
- Go语言学习笔记(6)——指针
指 针 指针: 存储另一个变量的内存地址的变量: Go语言的取地址符号也是& 1. 声明指针: var needle_name *type var b int = 10 var a *int ...
随机推荐
- Asp.NetCore初步探究
1, 新建一个空的AspNetCore项目,默认Program下的代码如下: public static void Main(string[] args) { BuildWebHost(args ...
- (php)实现万年历
<?php //修改页面编码 header("content-type:text/html;charset=utf-8"); //获取当前年 $year=$_GET['y'] ...
- C#通过盘符获取剩余空间
public static long GetHardDiskSpace(string str_HardDiskName) { ; str_HardDiskName = str_HardDiskName ...
- C# 灵活用法拾遗
1.switch case : ; switch (a) { : Console.WriteLine("一"); break; : : Console.WriteLine(&quo ...
- .net core webapi+EF Core
.net core webapi+EF Core 一.描述: EF Core必须下载.net core2.0版本 Micorsoft.EntityFrameworkCore:EF框架的核心包Micor ...
- ZZNU 1719(最长上升子序列+最长下降子序列)
先吐血一发,噗! 再吐血一次,啊啊啊啊! 好吧,做了那么多次最长上升子序列,看这题看了半天才发现还有最长下降子序列,呵呵哒! AC代码: #include<stdio.h>//老恶心#in ...
- Android逆向进阶——让你自由自在脱壳的热身运动(dex篇)
本文作者:HAI_ 0×00 前言 来看看我们今天的主题. 让你自由自在脱壳的热身运动. 现在很多第厂家都是使用第三方的加固方式来进行加固的.或者使用自己的加固方式进行加固. 那么我们必不可少的就是脱 ...
- webpack快速入门——实战技巧:开发和生产并行设置
package.json中,devDependencies和dependencies是不同的 devDependencies:开发依赖 dependencies:生产依赖(线上) 1.安装生产环境的依 ...
- WEB-INFO 目录
WEB-INF下面的内容都是只能由服务器级别才能访问,客户端并不能访问. 转发就是服务器级别,浏览器的地址不会变,因为,客户端发送一个请求,服务器受理之后,发现要请求内容还要再去别的请求,那么转发就是 ...
- C#里面const和readonly
一.const关键字限定一个变量不允许被改变. 使用const在一定程度上可以提高程序的安全性和可靠性. 1.用于修改字段或局部变量的声明,表示指定的字段或局部变量的值是常数,不能被修改. 2.常数声 ...