C语言学习笔记day18

1. 指针基本概念

    1.地址:用来区分内存中不同字节的编号
    2.指针:地址就是指针,指针就是地址
    3.指针变量:存储指针的变量,有时去掉变量,称为指针

2. 指针运算符

    1.&:
        1.获得一个变量在内存空间中的首地址
        2.让表达式类型升级 
    2.*:
        1.取指针指向空间中的值(所取空间大小取决于指针类型)
        2.将等号右边的值放入指针指向的空间
        3.让表达式类型降级 
        
    二级指针在C语言中2个地方使用:
        1.函数体内部想修改函数体外部指针变量值的时候,传指针变量的地址也就是二级指针
        2.指针数组传参时,数组的数组名是指向数组第一个指针元素的指针,也就是二级指针

3. 指针的算数运算

    +    指针偏移量为指向的数据类型大小个字节空间
    -    
    ++
    --    
        int *:                4
        char *:             1
        double *:            8
        struct student*:    44
        int **:                8

4. void指针

    void a;
    void *p;
    
    void指针常用来存储内存地址
    1.void类型指针不要使用* ++ --相关操作
    
    void *型指针和其余类型指针的转换
    void * -> char *        不需要做强制类型转换
              double *
              int * 
    char *   -> void *      需要类型转换(舍弃精度)
    double *
    int *
    
    主要用在作为函数参数,或者函数返回值表示兼容所有类型指针

    将内存地址为0x2000的空间赋值一个整形100 
    (*(int *)((void *)0x2000)) = 100;

5. const指针

    1.const int *p;
    2.int const *p;
    3.int *const p;
    4.const int *const p;
    5.int const *const p;
    
    1和2是等价的
    p可以改变,*p不可以改变
    p可以指向任意空间,但无法利用p修改指针空间的值
    
    3
    p不能改变,*p可以改变
    p只能指向初始化时的空间,无法指向其余空间,但可以利用指针修改指向空间的值
    注意:必须初始化 
    
    数组的数组名 
    
    4和5是等价的
    p不能改变, *p不能改变 
    注意:必须初始化

6. 指针数组和数组指针

    指针数组:
    int *a[5];
    定义一个数组,数组有5个元素,每个元素8个字节,共40个字节,每个元素都是指向
    整形变量的指针
    
    char *pstr[5];

    存储字符串数组使用二维数组
    操作字符串数组使用指针数组 

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

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

相关文章

ssm“健康早知道”微信小程序

采用技术 ssm“健康早知道”微信小程序的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringMVCMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 需求分析 利用ssm、Java、MyEclipse和mysql数据库等知识点,结合相关设…

element-ui自定义table表头,render-header使用

<el-table-column header-align="right" align="right" :render-header="renderHeader"><el-table-column prop="week" label="日期"></el-table-column><el-table-column prop="name" labe…

云卓C20,22倍变焦三轴夜视云台

云卓C20三轴云台&#xff0c;带探照灯&#xff0c;打破光线与空间束缚。具备22倍光学变焦与探照能力&#xff0c;为视觉带来新视角&#xff0c;随时捕捉高清影像&#xff0c;精准搜寻广阔区域。配备变焦高亮聚光灯&#xff0c;强化夜间作业效能与安全保障。适用于公安、电力、救…

[html]网页结构以及常见标签用法

哎&#xff0c;我服了&#xff0c;明明之前学了html的&#xff0c;但时间一长我就忘记了&#xff0c;本来flask学到视图了&#xff0c;但涉及到了html我觉得还是需要重新回顾一下,,,,,, web开发技术栈一共有3门语言。分别是&#xff1a; HTML&#xff1a;译作超文本标记语言&am…

excle如何设置自动显示星期几

目录 一.目的 二.范例结果 三.处理方式 一.目的 excle依据日期&#xff0c;设置后自动显示星期几。 二.范例结果 三.处理方式 公式1TEXT(XXX,DDDD) 公式2TEXT(XXX,DDD)

小程序View点击响应传递多个参数

小程序开发中&#xff0c;view的点击事件是通过bindtap绑定的&#xff0c;比如&#xff1a; <view classpay-button bindtapgotoDetail id{{item.id}}>查看详情</view> 在js文件中是这样获取参数id的&#xff1a; gotoDetail: function(e) {var id e.currentTar…

Java提供了哪些API用于集合类的操作?

Java提供了丰富的API用于集合类的操作。这些API涵盖了各种集合类型&#xff0c;包括List、Set、Queue、Map等&#xff0c;以及它们各自的实现类&#xff0c;如ArrayList、LinkedList、HashSet、LinkedHashSet、PriorityQueue、HashMap、LinkedHashMap等。 以下是一些常用的Jav…

银河麒麟桌面版v10系统安装windows的exe应用-使用CrossOver安装exe软件

银河麒麟桌面版V10系统属于Linux系统&#xff0c;要想在上面运行windows系统下的exe应用是可以实现的&#xff08;理论上可以实现&#xff0c;但实际中受限系统版本&#xff0c;虚拟windows应用的软件版本等多种问题&#xff0c;在安装使用的时候&#xff0c;并不能全部成功&am…

华纳云:Windows系统服务器分盘的操作方法

在Windows服务器的管理中&#xff0c;合理分配磁盘空间对于数据存储和系统运行至关重要。然而&#xff0c;许多用户可能不清楚如何进行磁盘分区操作。本文将介绍Windows系统服务器分盘的操作方法&#xff0c;帮助用户轻松管理磁盘空间。 步骤如下&#xff1a; 打开磁盘管理工具…

Kolla-ansible部署OpenStack集群

0. OpenStack 部署 系统要求 单机部署最低配置&#xff1a; 2张网卡8G内存40G硬盘空间 主机系统&#xff1a; CentOS Stream 9Debian Bullseye (11)openEuler 22.03 LTSRocky Linux 9- Ubuntu Jammy (22.04) 官方不再支持CentOS 7作为主机系统&#xff0c;我这里使用的是R…

第十届蓝桥杯大赛个人赛省赛(软件类) CC++ 研究生组2.0

A立方和 #include<iostream> #include<cmath> using namespace std; int main(){int n, t, flag, x;long long ans 0;for(int i 1; i < 2019; i){t i;flag 0;while(t && !flag){x t % 10;if(x 2 || x 0 || x 1 || x 9) flag 1;t / 10;}if(fl…

Rust - 函数

Rust中通过 fn 关键字来声明某个函数。 针对函数名&#xff0c;Rust使用snake case命名规范&#xff0c;即所有的字母都是小写的&#xff0c;单词之间使用下划线分开。 fn main() {println!("Hello, world!");another_function(); //函数调用 }fn another_function…

域名过期时间怎么计算?

域名是互联网上的重要标识&#xff0c;它帮助用户快速找到并访问特定的网站。为了维护域名的正常运行和避免不必要的麻烦&#xff0c;了解域名过期时间的计算和管理方式至关重要。 首先我们先来了解一下域名的各种状态及域名注册与删除周期。 通常情况下&#xff0c;英文国际域…

河南工业自动化领域的一线公司(依据工信部矿山领域公示名录)

1.原始信息来源&#xff1a; 工信部&#xff1a; 关于矿山领域机器人典型应用场景名单的公示 控制系统较监测系统在性能、安全上更趋严格&#xff0c;复杂性成倍增加。这里从工信部网站上爬到了一份在一个细分领域里投入研发&#xff0c;拥有既有产品的企业和产品名录&#…

vuex

1.概述 Vuex是实现组件全局状态&#xff08;数据&#xff09;管理的一种机制&#xff0c;可以方便的实现组件之间的数据共享 优点&#xff1a; 能够在vuex中集中管理共享的数据&#xff0c;便于开发和后期进行维护能够高效的实现组件之间的数据共享&#xff0c;提高开发效率…

流媒体的安全谁来保障

流媒体的安全谁来保障 说起媒体&#xff0c;我们马上就会想到报纸新闻、广播、电视。 其实所谓的流媒体同我们通常所指的媒体是不一样的&#xff0c; 它只是一个技术名词。流媒体到底是什么&#xff1f;能给我们的生活带来什么&#xff1f;跟小德一起来看看。 流媒体是什么&a…

大数据基本名词

目录[-] 1.1. 1. Hadoop1.2. 2. Hive1.3. 3. Impala1.4. 4. Hbase1.5. 5.hadoop hive impala hbase关系1.6. 6. Spark1.7. 7. Flink1.8. 8. Spark 和 Flink 的应用场景 1. Hadoop 开源官网&#xff1a;https://hadoop.apache.org/ Hadoop是一个由Apache基金会所开发的分…

使用Android完成案例教学

目录 题目&#xff1a;完成在Android平台下2个玩家分别利用2个手机连接在同一局域网下通过滑动摇杆分别使红飞机和黄飞机移动的开发。&#xff08;全代码解析&#xff09; 题目&#xff1a;完成在Android平台下2个玩家分别利用2个手机连接在同一局域网下通过滑动摇杆分别使红飞…

MongoDB聚合运算符:$max

文章目录 语法使用空值和缺失值的处理数组操作数的处理 举例在$group阶段使用在$setWindowFields阶段使用在$project阶段使用 $max聚合运算符用于返回最大值。 $max对于不同的类型的值使用BSON的比较顺序。 $max可以用于下面的这些阶段&#xff1a; $addFields$bucket$bucket…

解决unbuntu更新到23.10 mantic firefox无法使用的问题

产看历史版本号&#xff1a; 升级到最新版本后查看&#xff1a; roottesthost01:/home/test/Desktop# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 23.10 Release: 23.10 Codename: mantic 打开firefox发现图标找…