前言:相信大家都有被指针的大名吓到过,但是不用怕。今天我来带大家了解一下基础的指针。

提前说明一下:这只是简单了解一下(这篇后我们的初识C语言部分便结束了)

下篇我们将详细的讲解分支和循环语句


一.指针变量是什么

1.什么是指针?

总的来说:编号=地址=指针

指针变量是用来存放地址的

2.内存

我们谈到指针不得不提到内存

在计算机中,所有的数据都是存放在存储器中的。计算机中程序的运行都是在内存中进行的 。所以为了有效的使用内存,一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占2个单元,字符量占1个单元等。为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址。打一个比方这里的地址与我们生活中的地址十分相识也就是我们的门牌号 ,这样方便我们找到数据存放在哪里。综上所述:为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地 址。

如下图内存被划分成一个个的储存空间,每一储存空间就是一个内存单元,每一个内存单元都有一个编号,每个编号就是一个地址

3.指针变量的使用例子

#include<stdio.h>
int main()
{int num = 0;int* pa=&num;//取出num的地址//取出num的地址并放入指针变量pa中//num占4个字节,每个字节都有地址,这是取第一个地址//内存单元是连续的,知道第一个便可以找出全部数据printf("%p\n", pa);//%p是打印地址的return 0;
}

这样便取出num的第一个地址了,并且打印出来了

大概过程便是,当我们定义了一个整型变量num后,内存便为我们定义的整型变量num分配了4个内存单元用于存储整型变量num的数据。而后我们再使用取地址操作符&获取到了整形变量num在内存中的存储空间的地址,要注意的是在这里使用取地址操作符&取出的是整型变量num的存储空间中第一个字节的地址。接着我们定义了一个指针变量pa接收并存储了我们获取到的地址,最后我们用%p打印出来。

二.如何理解指针变量的用法

#include<stdio.h>
int main()
{int num = 0;int* pa=&num;printf("%p\n", pa);return 0;
}

依然是上面的这个例子,相信大家在上面有许许多多的疑问,*是什么,为什么是int*。

首先,pa是一个存放地址(指针)的变量,所以把pa叫做指针变量。

int*是什么呢?

int是在说明pa指向的对象是int,*是在说明pa是指针变量

举例来说

char ch = 'w';char* pc = &ch;
//char是说明pc指向的对象是char
//*是说明pc是指针变量float a = 10.0f;float* b = &a;
//float是说明b指向的对象是float
//*是说明b是指针变量

三.指针变量的大小

指针变量的大小取决于地址的大小
32位平台下地址是32个bit位(即4个字节)
64位平台下地址是64个bit位(即8个字节)
与int、double、float等等无关
什么是平台下地址呢?

图中圈中的地方, 这便是平台,大家可以试一试下面代码并且更改平台

#include <stdio.h>int main()
{printf("%d\n", sizeof(char *));printf("%d\n", sizeof(short *));printf("%d\n", sizeof(int *));printf("%d\n", sizeof(double *));return 0;
}

这是32比特位地址下,打印出的大小

这是64比特位地址下,打印出的大小

所以指针变量的大小取决于地址的大小


四.总结

在这 关于基础指针就讲完了,希望我的讲解能为大家带来一丝丝的帮助。当然这只是指针的基础,希望大家可多多练习,可以应用于自己的代码中去。大家都能成为大

初识C语言:了解基础指针相关推荐

  1. 初识C语言#define、指针、结构体

    #define 定义常量和宏 define是一个预处理指令. 在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为"宏".被定义为"宏"的标识符称为& ...

  2. 从零开始C语言精讲篇1:初识C语言

    文章目录 前言 一.什么是C语言(了解) 二.第一个C语言程序 三.数据类型 四.变量.常量 4.1变量 4.1.1定义变量的方法 4.1.2变量的分类 4.1.3变量的使用 4.1.4变量的作用域和 ...

  3. C语言基础1:初识C语言(转义、注释;数组、操作符、反码、补码、static、define、指针、结构体常变量;局部变量;作用域、生命周期)

    文章目录 C语言基础1:初识C语言 1.C语言简介 1.1什么是C语言 1.2C语言的发展 2.第一个C语言程序 2.1创建项目 2.2添加源文件 2.3写代码 3.数据类型 4.变量.常量 4.1定 ...

  4. C语言基础01——初识C语言

    目录 什么是C语言 第一个C语言程序:HelloWorld 初识数据类型 初识常量.变量 初始字符串.转义字符.注释 初识选择语句.循环语句 初识函数.数组 初识关键字 定义常量和宏 格式化输入输出 ...

  5. C++:C++语言入门级基础知识考察点回顾之数组、指针

    C++:C++语言入门级基础知识考察点回顾之数组.指针 目录 C++的数组.字符串 1.数组 1.1.声明数组 1.2.一维数组的应

  6. c语言数组与指针的基础知识,C语言学习笔记之数组与指针的关系

    首先,大家先需知道一个关于基类型的概念 基类型:组成一个新类型的基础类型 这句话是什么意思呢?举个例子: int a[3] = {1,2,3}; 上面是由三个int类型的数组成一个新的类型也就是数组, ...

  7. c语言int转字符串_C语言零基础入门-指针-05

    C语言零基础入门-指针-05 本节要点: 1,字符指针. 2,字符串指针. 3,指针的参数传递 4,多重指针 01. 字符指针 这里的定义与前面的基本一样,所谓的字符指针就是这个指针指向的是一个字符型 ...

  8. C语言 const 修饰指针 - C语言零基础入门教程

    目录 一.const 简介 二.const 修饰指针 1.const int *p 2.int const *p 3.int * const p 4.const int * const p 三.猜你喜 ...

  9. c语言课后作业答案指针,C语言程序基础练习题带答案

    C语言程序基础练习题带答案 C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value).下面是小编为大家搜索整理的C语言专项训练 ...

最新文章

  1. c++ char **argv 赋值
  2. Caffe官方教程翻译(3):Siamese Network Training with Caffe
  3. python不支持字符类型、单个字符也作为字符串使用_Python 字符串
  4. php5.4curl报错,PHP中使用CURL报错解决方案 rip curl php curl开启 curl下
  5. qt 运行库 linux,linux(ubuntu) 版qt5.x安装的一些知识
  6. SAP UI5 的初始化过程
  7. 自定义vue-cli生成项目模板配置(1)
  8. 如何检测过时的Kubernetes API
  9. Xilisoft iPad Magic Platinum for Mac如何制作铃声?将联系人传输到计算机/设备?
  10. Android ViewFlipper源码分析
  11. CA SDK 使用简介
  12. 【Python实现】运输问题的表上作业法(一):利用伏格尔 (Vogel) 法寻找初始基可行解
  13. [CATARC_2017] 第一周
  14. namecheap 添加二级域名
  15. C语言read和write函数解析
  16. 纯 CSS 中的简单响应式汉堡菜单
  17. w 命令 和 who 命令
  18. 爷们必看的东西,女生勿入
  19. 为什么你学过Java却忘光了——记第一次助教同学见面会,java开发面试笔试题
  20. nedc和epa续航里程什么意思_5分钟看懂综合工况续航、等速续航和NEDC续航指标

热门文章

  1. 莫纳什计算机专业强吗,2020年莫纳什大学计算机科学专业好不好
  2. 从零开始开发微信小程序(四):微信小程序绑定系统账号并授权登录之后台端...
  3. MATLAB怎么新建头文件,头文件()包含了C++的MATLAB引擎函数的定义。
  4. 昆石VOS3000_2.1.3.2完整安装包及安装脚本
  5. 不要签名证书将网页打包封装成苹果APP,无需苹果企业签名,IPA证书签名,ios签名证书,免越狱安装...
  6. 针对STM32F4的肉电路问题
  7. android Qwerty 键盘搜索联系人分析与实现(支持多音字)
  8. i春秋:日益增多的企业重要资料外泄
  9. Git - 时光机穿梭
  10. 【新华三】华三设备NTP无法同步