学习C语言遇到的问题

news2025/1/22 15:45:51

前言

这是博主在班训班培训期间学习C基础过程中遇到的一些问题,我把遇到的问题以及这些问题的解答链接统一放在这篇文章了。这只是博主遇到的一些问题,可能不会适用于全部人,希望大家把这篇文章当做查漏补缺的内容吧。

问题一:把字符串赋给指针和数组具体什么区别?

问题来源

这是博主在培训期间做的题,还有很多题,由于时间原因我先放这一个,有时间我把剩下的题在复制到这里。

问题解答

此问题解答来源于知乎网友的解答:(2 封私信) (c语言)请问把字符串赋给指针和数组具体什么区别? - 知乎 (zhihu.com)

想必你也知道字符串数组的数组名实际上也是指针,指向开辟的这段数组的首地址。但是数组名作为指针是一个常量(指针常量),是不能变的,始终指向这段内存的第一个元素的地址。

而"wuhan"是一个字符串常量,字符串常量是会在静态存储区开辟一段存储空间来存放这些字符,然后将这段存储空间的首地址赋给别人。(除非初始化数组时直接赋值,像这样char * str[6]="wuhan";)

所以,可以将字符串常量"wuhan"赋给字符指针char * p,但不能赋给字符串数组名str(因为数组名是指针常量,不能重新赋值)

想了个比喻:存储空间相当于房子,指针相当于路牌,数组名相当于门牌。路牌和门牌都能指明房子的地址,但是路牌可以修改让它指向不同的房子,而门牌已经和某栋房子绑定了,不能把自家门牌挂别家上面。

情况1:

char str[6] = "wuhan";    //建了一栋房子,同时入住了"wuhan"一帮人。

情况2:

char str[6];    //建了一栋房子,门牌号为str
str = "wuhan";    //"wuhan"一行人已经住进了宾馆,想把str门牌挂到宾馆上,不行,str只能是上面建的房子的门牌

情况3:

char *p = "wuhan";    //"wuhan"一行人住进了宾馆,同时建了个路牌指向他们的宾馆

情况4:

char *p;    //建了个路牌,但还没指向具体房子
p = "wuhan";    //"wuhan"一行人住进了宾馆,并且把路牌指向他们的宾馆

C语言学习----字符串数组和字符串指针_字符串指针数组-CSDN博客

初始化数组把静态存储区的字符串拷贝到数组中,而初始化指针只把字符串的地址拷贝给指针

 问题二:数组名和指针的区别与联系 

 C/C++: 数组名与指针之争 - 数组名和指针的区别与联系_哔哩哔哩_bilibili

问题三:指针数组,字符(串)数组,字符(串)指针是什么

来源:区分指针数组,字符指针和字符数组。_判断指针为字符数组-CSDN博客

C语言学习----字符串数组和字符串指针_字符串指针数组-CSDN博客

指针进阶——字符指针、指针数组和数组指针如何辨别和判断_如何判断指针-CSDN博客

指针数组

char* str[] 是一个指针数组,每个元素都是一个指向字符的指针。它可以用来存储字符串数组,每个字符串由一个字符指针指向

char* str[] = {"Hello", "World", "Example"}; 

字符数组 

字符数组是一个用于存储字符序列的数组 

字符指针

字符指针是指向字符的指针。指针数组char* str[]里存的就是字符指针

char* ptr = "Hello"; 

字符串字面量(字符串常量)

用双引号括起来的内容称为字符串字面量,字符串常量属于静态存储类别,储存在静态存储区(static memory)中,也就是存储在内存的常量区,不能进行修改。因为常量字符串存储在内存的常量区,指针所指向的地址永远是字符串第一个字符的地址。初始化数组把静态存储区的字符串拷贝到数组中,而初始化指针只把字符串的地址拷贝给指针。因为数组获得的是原始字符串的副本。总之,如果不修改字符串,不要用指针指向字符串字面量。而指针是直接指向这个字符串的地址,因此指针的效率较高。

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

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

相关文章

三十种未授权访问漏洞复现 合集( 三)

未授权访问漏洞介绍 未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。---->目录遍历 目前主要存在未授权访问漏洞的有:NFS服务&a…

CnosDB 元数据集群 – 分布式时序数据库的大脑

CnosDB 是一个分布式时序数据库系统,其中元数据集群是核心组件之一,负责管理整个集群的元数据信息。 1. 概述 CnosDB 是一个分布式时序数据库系统,其中元数据集群是核心组件之一,负责管理整个集群的元数据信息。元数据包括数据库…

用Ollama 和 Open WebUI本地部署Llama 3.1 8B

说明: 本人运行环境windows11 N卡6G显存。部署Llama3.1 8B 简介 Ollama是一个开源的大型语言模型服务工具,它允许用户在自己的硬件环境中轻松部署和使用大规模预训练模型。Ollama 的主要功能是在Docker容器内部署和管理大型语言模型(LLM&…

[CR]厚云填补_GridFormer

GridFormer: Residual Dense Transformer with Grid Structure for Image Restoration in Adverse Weather Conditions Abstract 恶劣天气条件下的图像恢复是计算机视觉中的一个难点。在本文中,我们提出了一种新的基于变压器的框架GridFormer,它可以作为…

【Android】ContentProvider基本概念

ContentProvider Android权限机制详解 <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"com.example.broadcasttest"> <uses-permission android:name"android.permission.RECEIVE_BOOT_COMPLETED" />…

8.2 grafana上导入模板看图并讲解告警

本节重点介绍 : grafana 上导入mysqld-dashboardglobal status 相关源码解读重要指标讲解 连接数内存TPS、QPS 将采集任务添加到prometheus中 - job_name: mysqld_exporterhonor_timestamps: truescrape_interval: 8sscrape_timeout: 8smetrics_path: /metricsscheme: httpf…

七天打造一套量化交易系统:Day7-实盘交易接入方式与注意事项

七天打造一套量化交易系统&#xff1a;Day7-实盘交易接入方式与注意事项 前情回顾证券交易接口XTP 接口头文件列表XTP 接口 demo 示例 期货交易接口CTP-API开发系列专栏 数字货币交易接口实盘接入注意事项 量化交易系统的核心要素包括选择投资标的、资金的分配、何时入场、何时…

Midjourney咒语之装修设计

装修设计 living room with a chinese shanshui painting frame on a wall with a 2 inch frame, colors: blue, white, focus on the picture, 35mm lens, realistic, design, commercial, plants, furniture, centered painting --s 750 --ar 16:9 80 square meter minimalis…

浅谈简单的搜索算法(c++)

目录 DFS思路实现应用场景DFS 的优缺点优点缺点 例题讲解N皇后问题[题目描述]输入输出样例输入样例输出 思路AC代码排列数字[题目描述]输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a;思路AC代码 树的重心[题目描述]输入格式输出格式数据范围输入样例输出样…

百度网盘不下载怎么直接打印文件?

在数字化时代&#xff0c;百度网盘作为我们存储和分享文件的重要工具&#xff0c;承载了大量的文档、图片和资料。然而&#xff0c;当需要打印这些文件时&#xff0c;很多用户会面临一个共同的问题&#xff1a;不想下载到本地再打印&#xff0c;既占用空间又浪费时间。那么&…

自闭症儿童无法上学?专业康复机构是希望的灯塔

面对自闭症儿童因特殊需求而无法融入普通学校的困境&#xff0c;每一位家长的心中都充满了焦虑与无助。然而&#xff0c;在这个充满挑战的时刻&#xff0c;选择一条科学、系统的康复之路&#xff0c;成为了引领孩子走向未来的关键。星启帆&#xff0c;作为国内规模较大全寄宿制…

0_(机器学习)逻辑回归介绍

模型简介 逻辑回归&#xff08;logistic回归&#xff09;即对数几率回归&#xff0c;它虽然被称作“回归”&#xff0c;但却是一种用于二分类的分类方法。逻辑回归是通过分析一个样本被分为各个类的概率比较后得出该样本最有可能属于的类的一种分类方法。 逻辑回归公式推导 训…

《Python数据结构精要:选择与应用》

本文将深入探讨Python中的几种常见数据结构&#xff0c;并通过实际案例来展示它们的应用场景和优缺点。通过本文的学习&#xff0c;读者可以更好地理解何时使用哪种数据结构以达到最优的程序性能。 正文内容&#xff1a; 引言 介绍数据结构的重要性及其在Python中的实现。简…

8.4 字符串中等 443 String Compression 467 Unique Substrings in Wraparound String

443 String Compression 注意&#xff1a;这里是按照顺序压缩&#xff0c;不忽略顺序就不能用字母表计数再还原了。 如果char num 1 只需要压入char本身 num > 1 时还需要压入char的个数 按字符压入 class Solution { public:vector<char> Push(vector<char>&a…

吴恩达机器学习COURSE1 WEEK3

COURSE1 WEEK3 逻辑回归 逻辑回归主要用于分类任务 只有两种输出结果的分类任务叫做二元分类&#xff0c;例如预测垃圾邮件&#xff0c;只能回答是或否 实际上&#xff0c;在逻辑回归中&#xff0c;我们要做的任务就类似于在数据集中画出一个这样的曲线&#xff0c;用来作为…

数据拯救利器:必备免费数据恢复软件清单

说起办公室里的那些小插曲&#xff0c;有时候真是让人哭笑不得。这不&#xff0c;前几天我就遇到了个大麻烦——硬盘分区一不小心给搞砸了&#xff0c;眼看着那些重要的文件、报告还有客户资料就要跟我“说拜拜”&#xff0c;心里那个急啊&#xff0c;简直就像热锅上的蚂蚁&…

CSP2019第二题: 公交换乘

CSP 2019 公交换乘 题目来源&#xff1a;牛客网 题目&#xff1a;* 示例1 输入 6 0 10 3 1 5 46 0 12 50 1 3 96 0 5 110 1 6 135输出 36题意&#xff1a; 根据输入&#xff0c;计算地铁花费不能用到优惠券的公交车的花费 知识点&#xff1a; 结构体 思路&#xff1…

Spring(Day2)

一、静态代理 静态代理的主要特点是代理类和被代理类通常具有相同的接口&#xff0c;这样客户端代码可以透明地使用代理类代替被代理类。 首先我们建立一个接口Shopping&#xff0c;在里面定义一个shopping方法。然后创建两个类EasyA和Proxy类来继承Shopping类&#xff0c;并重…

前端 react 实现图片上传前压缩 缩率图

目录 一、安装 二、编写工具类 三、获取压缩后的File对象 一、安装 npm install compressorjs 或 yarn add compressorjs 官方文档&#xff1a;compressorjs - npm (npmjs.com) 二、编写工具类 /*** author Dragon Wu* since 2024/8/4 12:23* 图片压缩工具*/ import Com…

《无畏契约》现已正式登陆Xbox Series X|S和PS5主机

拳头游戏日前已在没有任何通知的情况下直接在 Xbox Series X|S 和 PS5 主机上推出了其竞技射击游戏《无畏契约》。经过6 月的短暂测试后&#xff0c;游戏的主机版已经在美国、加拿大、欧洲、日本和巴西推出&#xff0c;将包括与 PC 版相同的玩法、英雄和技能。 主机版本将永远不…