C语言-指针(上)

news2024/11/15 16:27:34

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

本篇文章将为大家介绍C语言中的核心内容-指针,指针在C语言的中知识内容比较晦涩难懂,并且在实际运用中也被大量的使用。还有在深入学习编程中会学习的数据结构中,指针也是其相当重要的。所以,在C语言中指针是必不可少的。


提示:以下是本篇文章正文内容,下面案例可供参考

一、内存和地址

1.内存

内存像是排列整齐的房间,每个房间都可以用来存储数据,每个房间都有一个房间号来帮助我们找到对应的房间。

我们都知道计算机在进行数据处理时,数据都是要从内存中读取的,而计算机的内存由bit组成,每个位由2进制0或1组成。

为了更高效的管理内存,通常许多位合成一组作为一个单位这些位置的每一个都被称为字节(byte),

(一个byte=八个bite)每个字节都包含了存储一个字符所需要的位数。为了存储更大的值,我们把两个或更多个字节合在一起作为一个更大的内存单位。

注意

1.内存中的每个位置由一个独一无二的地址标识。
2.内存中的每个位置都包含一个值。

2.地址

在计算机语言中我们把内存单元的编号称为地址

我们可以根据这个地址取找到对应的数值。

所以,在C语言中可以将地址理解为指针

二、指针

1.指针变量

指针变量可以存放地址

代码如下(示例):

#include<stdio.h>
int mian()
{
    int a = 10;
    int* p =&a;            //p是指针变量-存放地址的变量
 
    return 0;     
}    

2.指针理解

#include<stdio.h>
int mian()
{
int a = 10;

int* p =&a; 

int* p = 20;
return 0;
}

 *  是说明p是指针变量,

int  是说明p指向的对象是int类型的

3.指针大小

指针大小取决于存放的地址所需空间的大小。

在32位编译器下:地址是32个0/1的二进制序列,存储起来需要32个bit位,指针变量的大小就是4个字节。

在64位编译器下:地址是64个0/1的二进制序列,存储起来需要64个bit位,指针变量的大小就是8个字节。

注意:

指针变量的大小和类型是无关的,只要指针类型的变量,在相同的下,大小都是相同的。

结论:指针类型决定了指针进行解引用操作的时候访问多大的空间。

三、 *

* 是解引用操作符或者间接访问操作符

*p 是解引用操作

#include<stdio.h>
int mian()
{

int a = 10;

int* p =&a; 

int* p = 20;

return 0;
}

此时,*p等价于a

四、const

const修饰指针变量,有两种情况:

1.const放在*左边

const修饰*p:

不能p来改变p指向的对象,但p可以指向其他对象。

#include<stdio.h>
int mian()
{

const int a = 10;

int b = 20;

const int * p =&a; 

 p = &b;  //√

*p = 20;  //×

return 0;
}

2.const放在*右边

const修饰p:

不能修改p本身的值,但p指向的内容可以通过p来改变。

#include<stdio.h>
int mian()
{

const int a = 10;

int b = 20;

 int * const p =&a; 

 p = &b;  //×

*p = 20;  //√

return 0;
}


总结

以上的内容为大家简单的介绍了指针的基本知识,希望大家对于指针的概念有了一个简单的了解,指针的内容较多且理解起来相对困难,希望大家继续坚持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1486189.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu23.10禁用Wayland

禁用前 编辑custom.conf文件 sudo vim /etc/gdm3/custom.conf 去掉WaylandEnablefalse前的#号 保存退出 重启系统 生效: 成功转换为X11

软件设计师软考题目解析17 --每日五题

想说的话&#xff1a;要准备软考了。0.0&#xff0c;其实我是不想考的&#xff0c;但是吧&#xff0c;由于本人已经学完所有知识了&#xff0c;只是被学校的课程给锁在那里了&#xff0c;不然早找工作去了。寻思着反正也无聊&#xff0c;就考个证玩玩。 本人github地址&#xf…

吴恩达机器学习-可选实验室-梯度下降-Gradient Descent for Linear Regression

文章目录 目标工具问题陈述计算损失梯度下降总结执行梯度下降梯度下降法成本与梯度下降的迭代预测绘制祝贺 目标 在本实验中&#xff0c;你将:使用梯度下降自动化优化w和b的过程 工具 在本实验中&#xff0c;我们将使用: NumPy&#xff0c;一个流行的科学计算库Matplotlib&…

如何利用pynlpir进行中文分词并保留段落信息

一、引言 nlpir是由张华平博士开发的中文自然处理工具&#xff0c;可以对中文文本进行分词、聚类分析等&#xff0c;它既有在线的中文数据大数据语义智能分析平台&#xff0c;也有相关的python包pynlpir&#xff0c;其github的地址是&#xff1a; Pynlpir在Github上的地址 这…

【分块三维重建】【slam】LocalRF:逐步优化的局部辐射场鲁棒视图合成(CVPR 2023)

项目地址&#xff1a;https://localrf.github.io/ 题目&#xff1a;Progressively Optimized Local Radiance Fields for Robust View Synthesis 来源&#xff1a;KAIST、National Taiwan University、Meta 、University of Maryland, College Park 提示&#xff1a;文章用了s…

Linux设备模型(十一) - platform设备

一&#xff0c;platform device概述 在Linux2.6以后的设备驱动模型中&#xff0c;需关心总线、设备和驱动这3个实体&#xff0c;总线将设备和驱动绑定。在系统每注册一个设备的时候&#xff0c; 会寻找与之匹配的驱动&#xff1b;相反的&#xff0c;在系统每注册一个设备的时…

输出梯形 C语言

解析&#xff1a;这个输出图形的题就是一个找规律加数学计算&#xff0c;我们发现每行比上一行多两个*&#xff0c;最后一行的*表达式为h&#xff08;h-1&#xff09;*2&#xff0c;即3*h-2&#xff0c;那么每一行就是一个先输出最后一行&#xff0d;当前行*个数个空格&#xf…

【Godot4自学手册】第十九节敌人的血量显示及掉血特效

这一节&#xff0c;我主要学习敌人的血量显示、掉血显示和死亡效果。敌人的血量显示和主人公的血量显示有所不同&#xff0c;主要是在敌人头顶有个红色的血条&#xff0c;受到攻击敌人的血条会减少&#xff0c;并且有掉血数量的文字显示&#xff0c;效果如下&#xff1a; 一、…

详解动态规划(算法村第十九关青铜挑战)

不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finis…

QT Mingw32/64编译ffmpeg源码生成32/64bit库以及测试

文章目录 前言下载msys2ysamFFmpeg 搭建编译环境安装msys2安装QT Mingw编译器到msys环境中安装ysam测试 编译FFmpeg测试 前言 FFmpeg不像VLC有支持QT的库文件&#xff0c;它仅提供源码&#xff0c;需要使用者自行编译成对应的库&#xff0c;当使用QTFFmpeg实现播放视频以及视频…

【leetcode】用队列实现栈

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 点击查看题目 思路: 在做此题之前&#xff0c;我们先要实现队列&#xff0c;这在上个博客中已经写过&#…

算法43:动态规划专练(最长回文子串 力扣5题)---范围模型

之前写过一篇最长回文子序列的博客算法27&#xff1a;最长回文子序列长度&#xff08;力扣516题&#xff09;——样本模型 范围模型-CSDN博客 在那一篇博客中&#xff0c;回文是可以删除某些字符串组成的。比如&#xff1a; 字符串为&#xff1a;a1b3c4fdcdba&#xff0c; 那…

赵文彬将出席无磷锅炉工艺助剂在锅炉水节水节能应用

演讲嘉宾&#xff1a;赵文彬 集团副总/技术总监 上远未来水务集团有限公司 演讲题目&#xff1a;无磷锅炉工艺助剂在锅炉水节水节能方面的应用 会议简介 “十四五”规划中提出&#xff0c;提高工业、能源领城智能化与信息化融合&#xff0c;明确“低碳经济”新的战略目标&am…

c++之旅——第四弹

大家好啊&#xff0c;这里是c之旅第三弹&#xff0c;跟随我的步伐来开始这一篇的学习吧&#xff01; 如果有知识性错误&#xff0c;欢迎各位指正&#xff01;&#xff01;一起加油&#xff01;&#xff01; 创作不易&#xff0c;希望大家多多支持哦&#xff01; 本篇文章的主…

一些C语言题目

求10个整数中最大值 #include <stdio.h>//求10个整数中最大值 int main() {int arr[10]{2,5,8,6,19,1,7,3,11,3};int i 0;int max 0;/*for(i 0;i < 10;i){scanf("%d",&arr[i]);}*/for(i 0;i < 10;i){if(arr[i] > max)max arr[i];}printf(&q…

tomcat 反向代理 自建博客 修改状态页 等

一 自建博客 随后&#xff0c;拷贝到webapps下面 并且做软连接 随后重定向 并且下载 cat >/etc/yum.repos.d/mysql.repo <<EOF [mysql57-community] nameMySQL 5.7 Community Server baseurlhttp://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/ enabled1 g…

分享一款我自己开发的自动更新小工具

我们公司最近需要开发一款自动上传的工具&#xff0c;这个工具需要安装在用户电脑上&#xff0c;但是这样不利于维护&#xff0c;于是想到了自动更新这个功能&#xff0c;需要在打开工具时顺带打开自动更新的小工具&#xff0c;这样我们在更新代码后&#xff0c;用户那边就能自…

IDEA POM文件配置profile实现不同环境切换

目录 一、背景 二、实现 2.1创建不同的配置文件 2.2配置POM文件 三、效果 3.1本地使用 2.2线上或者测试环境使用 一、背景 在企业级开发中&#xff0c;为了不影响生产环境的项目运行&#xff0c;一般情况下都会划分生产环境、测试环境、开发环境。不同环境可以配置不同的…

4. 编写app组件

1. 代码 main.ts // 引入createApp用于创建应用 import {createApp} from "vue"// 引入App根组件 import App from ./App.vue createApp(App).mount(#app) App.vue <!-- vue文件可以写三种标签1. template标签&#xff0c;写html结构2. script 脚本标签&…

Linux设备模型(十) - bus/device/device_driver/class

四&#xff0c;驱动的注册 1&#xff0c;struct device_driver结构体 /** * struct device_driver - The basic device driver structure * name: Name of the device driver. * bus: The bus which the device of this driver belongs to. * owner: The module own…