《每天一分钟学习C语言·二》

1、当使用const关键字变量就无法修改可当常量来用。常量指针不能通过指针来改变变量的值,但可以通过其他引用来改变变量的值常量指针也可以指向其他变量地址,如

int a=5,b=6;
const int *pt = &a;
*pt=6; //错误
a=6; //正确
pt=&b; //正确

指针常量指向的地址不能改变,但可以改变变量的值,如

int a=3;
int b=4;
int *const arr=&a;
arr=&b //错误
*arr = 4; //正确

2、
int *arr[3]; //三个int型的指针组成的数组,相当于int *arr1, int *arr2, int *arr3组成一个数组
char *arr[3]={“abc”, “1234”,”adfdf”}; //三个char型的指针组成的数组,相当于char *arr1, char *arr2, char *arr3组成一个数组

3、gets(地址)输入字符串函数,把回车变为\0字符
puts(地址或者字符串”abc”)输出字符串函数,遇到’\0’字符输出,末尾自动加\n

4、
易错

char *ch = "12abc";
Printf("%s",ch); //12abc
Printf("%s", *ch);  //错误,不能把一个字符用字符串的形式输出
Printf("%c",*ch); //1
Printf("%c", *(ch+1));  //2
Printf("%c",ch[2]);  //a

5、在输出的时候想要引用双引号,可在双引号前加\,如printf(“\”123\””);

6、左值不可修改表示赋予左值得那个变量不可修改,即左值右边的东西不可修改

7、static关键字修饰全局变量的时候,这个全局变量只能在本文件中访问,其他文件不可访问,就算有extern外部声明也不行。
static修饰一个函数的时候这个函数只能在本文件中使用,不能被其他的文件调用
static修饰局部变量的时候,在整个程序没有运行结束,值不会被销毁

#include <stdio.h>
static int n; //定义静态全局变量
int  fun1()
{static int m=0; //定义静态举局部变量m++;return m;
}int  fun2()
{n=0;n++;return n;
}void main()
{int i;for(i=0;i<5;i++){Printf(%d %d\n”fun1(),fun2()); //m为静态局部变量,这个函数运行结束,静态变量的值不会被销毁,函数下次使用时仍能使用,每次调用函数遇到静态定义程序都会忽略这条,直接走到m++;//n为静态全局变量,作用仅限于变量被定义的文件,每次调用函数都会n=0;}
}

输出:
1 1
2 1
3 1
4 1
5 1

8、
头文件string.h的函数,对字符串操作
strlen()测量字符串长度,结尾的空字符’\0’不包括进去
strcat(地址a,地址b)字符串拼接,把b拼接到a上
Strncat(地址a,地址b,长度)把b字符串拼接到a上,拼接多少由长度控制
Strcmp(地址或字符串,地址或字符串)字符串的比较。不可以是字符,两字符串比较相同返回0(假),不同返回非0(真)(如果前者排在ascii码前面返回-1,否则返回1,如strcmp(“a”,”b”)返回-1)。
需要注意的是:

char try[10];
gets(try);
while(try != “abc”)
{puts(“字符串不相等”);gets(try);
}

try实际上是个指针,拿一个指针地址和字符串比较永远不会相等,就永远走不出循环。
strncmp(地址或字符串,地址或字符串,长度)这里的长度来决定比较前多少个字符串
strcpy(地址或字符串,地址或字符串)字符串拷贝,把第二个字符串拷贝到第一个字符串上面,第二个字符串的结尾符’\0’也会拷进来,函数读到空字符结束。strcpy(arr2+4,arr1)表示从arr2开始往后数4个字符开始复制,如:

char *arr1=”abc”;
char arr2[] =12345678;
strcpy(arr2+4,arr1);
puts(arr2); //1234abc

strncpy(地址或字符串,地址或字符串,长度)表示把后一个字符串截取多少长度拷贝到第一个字符串里,如:

Char *arr1=”abc”;
Char arr2[] =12345678;
strncpy(arr2,arr1,2);  //ab345678

9、
char arr[3][3]表示有三行,每行有三个字符组成的数组,也可以表示,有三行每行存有一个字符不超过三的字符串

for(int i=0;i<3;i++)gets(arr[i]); //对每行写入一个字符串

10、
printf()用法和printf差不多,printf把东西打印到屏幕上,而sprintf把东西打印到字符串里,如:

char *arr=”abc”;
float a=3.14f;
char ch=’A’;
char arr1[50];
sprintf(arr1,”字符串:%s  浮点数:%.2f  字符:%c”, arr,a,ch);
puts(arr1); //字符串:abc  浮点数:3.14  字符:A
在这里插入图片描述

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

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

相关文章

Databend 开源周报第 124 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 新增对 Delta 和…

使用下载代替物理串口输出-STM32 Debug (printf) Viewer

使用下载代替物理串口输出-STM32 Debug 硬件要求配置方法代码要求打印输出结果 硬件要求 STM32的PB9、PB10引脚的串口1通常用作其他功能使用后&#xff0c;无法通过printf()函数打印输出想要调试输出查看变量或调试信息。现已使用另外一种方法实现printf()函数打印输出。 ST…

R语言采集获取58商铺出租转让信息

前两篇文章给我一个朋友分析出店铺商品以及地址房源信息&#xff0c;后来去看了下店铺房租有点贵&#xff0c;还是毛坯房&#xff0c;要自己装修&#xff0c;本着节约成本的原则。熬了个通宵&#xff0c;给他采集了一些转租商铺数据&#xff0c;因为数据比较多&#xff0c;过于…

virtualbox 虚拟机ubuntu22 识别不了CH340串口

首先启用USB设备&#xff0c;CH340识别为QinHengXXXXX USB Serial. 设置以后发现还是无法识别到/dev/ttyUSB0&#xff0c;但是cp2102按照相同的设置能够正确识别到&#xff0c;查看tty系统日志 sudo dmesg | grep tty 发现串口被brltty占用了 将其卸载试试 sudo apt remove …

Pytorch深度强化学习案例:基于Q-Learning的机器人走迷宫

目录 0 专栏介绍1 Q-Learning算法原理2 强化学习基本框架3 机器人走迷宫算法3.1 迷宫环境3.2 状态、动作和奖励3.3 Q-Learning算法实现3.4 完成训练 4 算法分析4.1 Q-Table4.2 奖励曲线 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理&#xff0c;并且采用Pytorch框架对常见…

C# WPF上位机开发(利用tcp/ip网络访问plc)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 c# wpf如果是用来开发非标上位机的&#xff0c;那么和plc的通信肯定是少不了的。而且&#xff0c;大部分plc都支持modbus协议&#xff0c;所以这个…

lv12 linux 内核移植 10

目录 1 内核概述 1.1 内核与操作系统 1.2 Linux层次结构 1.3 Linux内核特点 2 Linux内核源码结构 2.1 Linux内核源码获取 2.2 源码结构 3 Linux内核移植 3.1 在 Linux 官网下载 Linux 内核源码&#xff08;这里我们下载 linux-3.14.tar.xz&#xff09; 3.2 拷贝内核源…

Gitee:远程仓库步骤

第一步&#xff1a;新建仓库 第二步&#xff1a;初始化本地仓库&#xff0c;git init 创建分支 git branch 新分支名 第三步&#xff1a;git add . &#xff1a;添加到暂存区 第四步&#xff1a;git config –global user.email关联邮箱&#xff0c;user.name用户名 第…

C++模板进阶

文章目录 前言反向迭代器反向迭代器和正向迭代器的区别stl反向迭代器源码反向迭代器模拟实现测试 模板进阶非类型模板参数Array 模板的特化模板的分离编译 前言 模板进阶也没有到一些特别的东西&#xff0c;就是讲比较偏的一些特性。 在这里我们先来讲一下反向迭代器。 反向迭…

Linux常用网络指令

网络参数设定使用的指令 手动/自动设定与启动/关闭 IP 参数&#xff1a;ifconfig, ifup, ifdown ifconfig ifconfig常用于修改网络配置以及查看网络参数的指令 [rootwww ~]# ifconfig {interface} {up|down} < 观察与启动接口 [rootwww ~]# ifconfig interface {options…

net6使用StackExchangeRedis实现分布式缓存

上一篇讲解了Redis的搭建及ServiceStack.Redis 与 StackExchange.Reids 的区别https://blog.csdn.net/qq_39569480/article/details/105249607 这篇文章遗我们来说下使用Microsoft.Extensions.Caching.StackExchangeRedis来对redis进行操作及帮助类。 首先在windows上安装red…

产品入门第六讲:Axure中继器

&#x1f4da;&#x1f4da; &#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​​​​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Axure》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c…

Unity | Shader基础知识(第七集:案例<让图片和外部颜色叠加显示>)

目录 一、本节介绍 1 上集回顾 2 本节介绍 二、添加图片资源 三、 常用cg数据类型 1 float 2 bool 3 sampler 四、加入图片资源 五、使用图片资源 1 在通道里加入资源 2 使用图片和颜色叠加 2.1 2D纹理采样tex2D 2.2 组合颜色 六、全部代码 七、下集介绍 相关…

git-lfs基本知识讲解

目录 1. 基本知识2. 安装 1. 基本知识 git-lfs 是 Git Large File Storage 的缩写&#xff0c;是 Git 的一个扩展&#xff0c;用于处理大文件的版本控制。 它允许你有效地管理和存储大型二进制文件&#xff0c;而不会使 Git 仓库变得过大和不稳定。以下是一些与 git-lfs 相关…

【微服务】springboot整合minio详解

目录 一、前言 二、Minio 概述 2.1 Minio简介 2.1 Minio特点 三、Minio 环境搭建 3.1 部署过程 3.1.1 拉取镜像 3.1.2 启动容器 3.1.3 访问web页面 四、Minio基本使用 4.1 基本概念 4.2 上传文件演示 4.3 用户管理 4.4 Java操作Minio 4.4.1 导入依赖 4.4.2 上传…

机器学习——支持向量机

目录 一、基于最大间隔分隔数据 二、寻找最大间隔 1. 最大间隔 2. 拉格朗日乘子法 3. 对偶问题 三、SMO高效优化算法 四、软间隔 五、SMO算法实现 1. 简化版SMO算法 2. 完整版SMO算法 3. 可视化决策结果 六、核函数 1. 线性不可分——高维可分 2. 核函数 …

调用第三方http接口 hutool工具类

1、引入依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.0.M2</version> </dependency>2、请求组装 String params"<BSXml>" " <MsgHeader>&…

org.springframework.boot.autoconfigure.AutoConfiguration.imports新版自动配置

文章目录 场景 场景 springboot2.7.0之后的版本 自动配置方式有了变化, 新版兼容旧版 旧版新版META-INF/spring.factoriesMETA-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.importsConfigurationAutoConfiguration

【期末复习向】长江后浪推前浪之ChatGPT概述

参考文章&#xff1a;GPT系列模型技术路径演进-CSDN博客 这篇文章讲了之前称霸NLP领域的预训练模型bert&#xff0c;它是基于预训练理念&#xff0c;采用完形填空和下一句预测任务2个预训练任务完成特征的提取。当时很多的特定领域的NLP任务&#xff08;如情感分类&#xff0c…

STM32-UART-DMA HAL库缓冲收发

文章目录 1、说明1.1、注意事项&#xff1a;1.2、接收部分1.3、发送部分 2、代码2.1、初始化2.2、缓冲接收2.3、缓冲发送2.4、格式化打印 1、说明 1.1、注意事项&#xff1a; HAL库的DMA底层基本都会默认开启中断使能&#xff0c;如果在STM32CubeMx禁用了中断相关的功能&…