C语言_第一轮笔记_指针

8.1 密码开锁

  • 地址和指针
    • 一般以变量所在的内存单元的第一个字节的地址作为他的地址
    • NULL的值为0,代表空指针
  • 指针变量的定义
    • 类型名 *指针变量名
    • 类型名指定指针变量所指向变量的类型
    • 指针声明符*在定义指针变量时被使用,说明被定义的那个变量是指针
    • 指针变量要先赋值再使用
p = &i;
p = 0;
p = NULL; // 空指针不指向任何单元
p = (int *)1732;
  • 指针的基本运算
    • 相同类型的指针能进行复制、比较和算数运算

8.2 角色互换

  • 指针作为函数的参数
    • 在实参和形参之间的数据传递是单向的值传递方式,调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指向的变量的值
    • 只要在函数中改变*p的值,就改变了该存储单元的内容

冒泡排序

数组一旦被定义后内存空间就会被分配,也就是说数组名所代表的地址是不能改变的

  • 指针、数组和地址间的关系
    • 数组的基地址是在内存中存储数组的起始位置,他是数组中第一个元素的地址,因此数组名本身是一个地址及指针值
    • 指针是以地址作为值的变量,而数组名的值是一个特殊的固定地址,可以把它看作是指针常量
    • 不能改变指针常量a的值
    • 指针每一次加一减一,是加上或减去该指针所指向的那个变量数据类型的长度,即它所指向的存储单元所占用的字节数
    • 数组名可以使用指针形式,而指针变量也可以转换为数组形式
    • 指针相减表示他们两个之间数组元素的个数
p = a;
sum = 0;
for (i = 0; i < 100; i++)
{sum += p[i];
}
  • 数组名作为函数的参数
    • 当进行参数传递时,主函数传递的是数组a的基地址,数组元素本身不被复制

字符串压缩

  • 字符串和字符指针
    • 字符串常量是用一对双括号括起来的字符序列,通常被看作一个特殊的一维字符数组
    • 系统在存储一个字符串是先给定一个起始地址,连续存放该字符串中的字符
      在这里插入图片描述
      在这里插入图片描述
  • 常用的字符串处理函数
    • 字符串的输入输出
      • scanf
      • printf
      • gets
      • puts
  • 字符串的复制,连接和比较及其计算字符串长度的函数
    • 字符串复制函数char *strcpy(char *s1, char *s2,把字符串s2复制到s1。

    • 字符串连接函数strcat(s1, s2)s2接到s1后面

    • 字符串比较函数strcmp(s1, s2)在这里插入图片描述
      在这里插入图片描述

    • 字符串长度函数strlen(s1)
      在这里插入图片描述

  • 在应用标准库中的任何函数前,必须要提供函数原型#include <string.h>

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

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

相关文章

【Algorithms 4】算法(第4版)学习笔记 23 - 5.4 正则表达式

文章目录 前言参考目录学习笔记1&#xff1a;正则表达式1.1&#xff1a;表示1.2&#xff1a;快捷表示2&#xff1a;正则表达式与非确定有限状态自动机 REs and NFAs2.1&#xff1a;二元性2.2&#xff1a;模式匹配实现2.3&#xff1a;非确定有限状态自动机 Nondeterministic fin…

mysql 判断一张表是否存在的方法

查询表是否存在 使用 SHOW TABLES SHOW TABLES LIKE %tbl_tabl%;结果: 查询 INFORMATION_SCHEMA // like 匹配 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA test AND TABLE_NAME like %tbl%; // 完全匹配 SELECT TABLE_NAME FROM INFORMATION_SC…

一个简单的Demo展示fastapi+tortoise-orm+celery如何搭配

1. 创建并激活虚拟环境 python3 -m venv venv source venv/*/activate 2. 安装依赖包 pip install fastapi uvicorn[standard] tortoise-orm celery[redis] fastapi-cdn-host 3. 配置数据库连接参数 - config.py from typing import TypedDictclass TortoiseInitParam(Ty…

HarmonyOS NEXT应用开发之ForEach:循环渲染

ForEach接口基于数组类型数据来进行循环渲染&#xff0c;需要与容器组件配合使用&#xff0c;且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如&#xff0c;ListItem组件要求ForEach的父容器组件必须为 List组件 。 说明&#xff1a; 从API version 9开始&a…

计算机网络|谢希仁版|数据链路层

数据链路层 数据链路层研究的是什么&#xff1f;数据链路层的几个共同问题数据链路与链路帧通信规程 三个基本问题封装成帧透明传输差错检测可靠传输 点对点协议PPPPPP协议应满足的需求PPP协议的组成PPP协议帧的格式各字段的意义字节填充零比特填充PPP协议的工作状态 使用广播信…

恒创科技:Windows 服务器关闭防火墙的两种方法

​  防火墙是在Windows服务器中的一项安全功能&#xff0c;可监视所有网络流量(传入和传出)&#xff0c;并根据一组旨在保护系统免受黑客攻击的规则允许或阻止流量。然而&#xff0c;在某些情况下&#xff0c;您可能需要暂时关闭防火墙以进行特定的网络配置或测试。本文将介绍…

03 Python进阶:MySQL - mysql-connector

mysql-connector安装 要在 Python 中使用 MySQL 数据库&#xff0c;你需要安装 MySQL 官方提供的 MySQL Connector/Python。下面是安装 MySQL Connector/Python 的步骤&#xff1a; 首先&#xff0c;确保你已经安装了 Python&#xff0c;如果没有安装&#xff0c;可以在 Python…

mac、windows 电脑安装使用多个版本的node

我们为啥要安装多个不同版本的node&#xff1f; 开发旧项目时&#xff0c;使用低版本Nodejs。开发新项目时&#xff0c;需使用高版本Node.js。可使用n同时安装多个版本Node.js&#xff0c;并切换到指定版本Node.js。 mac电脑安装 一、全局安装 npm install -g n 二、mac电脑…

如何优化TCP?TCP的可靠传输机制是什么?

在网络世界中&#xff0c;传输层协议扮演着至关重要的角色&#xff0c;特别是TCP协议&#xff0c;以其可靠的数据传输特性而广受青睐。然而&#xff0c;随着网络的发展和数据量的激增&#xff0c;传统的TCP协议在效率方面遭遇了挑战。小编将深入分析TCP的可靠性传输机制&#x…

LeetCode_394(字符串解码)

双栈法 public String decodeString(String s) {String res "";Stack<Integer> countStack new Stack<>();Stack<String> resStack new Stack<>();int idx 0;while (idx < s.length()){char cur s.charAt(idx);//处理数字if(Charact…

2024第八届全国青少年无人机大赛暨中国航空航天科普展览会

2024第八届全国青少年无人机大赛暨中国航空航天科普展览会 邀请函 主办单位&#xff1a; 中国航空学会 重庆市南岸区人民政府 招商执行单位&#xff1a; 重庆港华展览有限公司 为更好的培养空航天产业人才&#xff0c;汇聚航空教育产业创新科技&#xff0c;丰富和完善航…

【WEEK6】 【DAY2】DQL Data Querying - Part Two 【English Version】

2024.4.2 Tuesday Following the previous article 【WEEK6】 【DAY1】DQL Data Query - Part One【English Version】 Contents 4.4. Join Queries4.4.1. JOIN Comparison4.4.2. Seven Types of JOINs4.4.3. Examples4.4.3.1. In this example, the results of INNER JOIN and…