揭露谭浩强的错误-证实不能用字符指针变量做形参

AgentScope Java 2.0 项目实战:从零构建企业级自主Coding Agent 本文基于 AgentScope Java 框架,完整拆解两个生产级 AI Agent 项目的从零开发全过程。其一是企业级自主编码机器人(agentscope-codingagent),支持 Issue→PR 自动实现、PR Code Review、Docker 沙箱隔离执行与多通道接入;其二是个人 AI 助手管理平台(agentscope-paw),采用 Spring Boot + React 全栈架构,支持多 Agent、技能市场与多 IM 通道。 阅读详情

谭浩强  《C程序设计第三版》 第255页 例10.19 有如下程序:

功能是将a字符串复制到b,并输出两个字符串。

#include<stdlib.h>
#include<stdio.h>
void copy_string(char *from,char *to)
{
  for(;*from!='\0';)
      *to++=*from++;  
   *to='\0';  
}
int main()
{
char *a="I am teacher.";
char *b="you are a student.";
printf("string a=%s\nstring b=%s\n",a,b);
copy_string(a,b);
printf("\nstring a=%s\nstring b=%s\n",a,b);
system("pause");
}


老先生说得信誓旦旦,并在第257页作了总结,说 实参可以为字符指针变量。

奈何调试没成功。发现原因如下:

char *a = "I am a teacher.";   
char *b = "You are a student.";


a,b保存的是常量数据区地址,a,b指向的内容不能被修改
所以你函数里面的赋值是不起作用的.
改成这样

char a[] = "I am a teacher.";   
char b[] = "You are a student.";


字符串传给字符数组,a,b保存的是栈区地址,这样传进函数就可以修改其内容了.

简单地说,char * 和char[]都可以用来表示字符串,但两者有很大的不同。

其中最主要的不同就是char *所表示的字符串,是不能修改的,而char[]所表示的字符串是可以修改的。

所以,将实参改成数组型即可,至于形参,使用数组和字符指针都可以。

Flatten 层的深度理解与运用 阅读详情

相关推荐

TBtools的序列提取步骤

本教程详细介绍了如何使用TBtools软件从原来的FASTA序列中提取特定的DNA序列。

weixin_47509995的博客 1万+

fstream的使用详解

ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<)   向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"WriteStdout"<<’\n’;就表示把字符串"WriteStdout"和换行字符(’...

shaderdx的专栏 7218

Qt加载百度地图详细流程(附带报错解决方法)

一篇文章看懂Qt如何加载出百度地图......

qq_60018273的博客 1605

fstream用法总结

在C++中输入输出到指定文件,或者从指定文件中读出数据使用fstream类较为方便。C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream(向文件中写入)和fstream分别从类 istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件&lt;fstream&gt...

weixin_40332685的博客 9473

从硬件到软件:深度解析D435i USB SCP overflow错误的根源与解决方案

本文深入解析Intel RealSense D435i相机在ROS环境下常见的'USB SCP overflow'错误,特别是与`control_transfer`相关的错误提示。从硬件配置到软件优化,详细介绍了如何通过调整USB接口、优化`rs_camera.launch`参数、更新固件驱动等方法解决数据传输溢出问题,提升设备稳定性和性能。

yy01234的博客 771

华为[ENSP]—— 实验二、三层交换和ARP的工作原理

华为[ENSP]三层交换和ARP的工作原理

weixin_62594100的博客 6411

C++中读写文件方法(fstream用法)

日常工作中肯定会用到文件读写操作,C++ STL中 fstream 是一种用于文件读写的流类,它可以方便地对文件进行输入输出操作。本文将详细介绍C++ fstream的使用方法,以及各种常用的函数方法和参数。

攻城狮的博客 1万+

PCL 法线定向【2025最新版】

几种法线定向方法的PCL代码实现。

点云侠的博客 2806

C/C++中使用文件流fstream输入输出的方法

近期使用C/C++处理文件时,有时需要一行行的读写,有时需要以单词输入输出,又有时要一个字母一个字母处理,甚至以二进制格式从底层修改文件。查了资料后发现这些需求有不同的解决方法,怕之后忘了所以写个博客给自己几个笔记,顺便和大伙分享分享。本文只讨论C++中针对不同情况使用文件流输入输出的具体方法,不涵盖如何定义fstream对象,绑定文件,以及各种输入输出模式的区别等等基础知识(但读之前需要掌握)。

weixin_51947326的博客 1900

【数据集】未来不同情景下预测数据:如人口、土地利用等

未来不同情景下预测数据:如人口、土地利用等

WW、forever的博客 2995

STM实战开发(13):STM32开发:使用光敏电阻检测光照强度

光敏电阻(LDR)是一种电阻值受光照强度影响的半导体材料。当光照强度增大时,光敏电阻的电阻值降低;而当光照强度减小时,电阻值则增大。光敏电阻的电阻变化与入射光的强度之间并不是线性关系,而是呈对数型的变化。LDR通常由硫化镉(CdS)或其他半导体材料构成,材料对不同波长的光有不同的响应特性。一般而言,光照强度越强,光敏电阻的电阻值越低,反之则越高。本文介绍了如何使用STM32与光敏电阻(LDR)结合,进行光照强度检测的实现方法。通过配置STM32的ADC模块,读取光敏电阻的电压信号,并根据电压计算光照强度。

2201_76125393的博客 3018

【C++入门】文件流(fstream)介绍和使用

(1)在C++11标准时,open函数的文件路径可以传char指针也可以传string指针,而在C++98标准,open函数的文件路径只能传char指针;(2)open函数的第二个参数是打开文件的模式,从函数定义可以看出,如果调用open函数时省略mode模式参数,则默认按照可读可写(ios_base:in | ios_base::out)的方式打开;(3)打开文件时的mode的模式是从内存的角度来定义的,比如:in表示可读,就是从文件读数据往内存读写;out表示可写,就是把内存数据写到文件中;

weixin_42031299的博客 1万+

如何卸载Gazebo与重装

gazebo是一款关于车辆和无人机的仿真软件,本文大致介绍它是何物,以及他的安装和卸载方法,对于ROS开发者,本文有一定参考意义。

gongdiwudu的专栏 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

fstream用法总结 C++

在C++中输入输出到指定文件,或者从指定文件中读出数据使用fstream类较为方便。 1.将数据写到磁盘的指定文件中 首先第一步是加头文件#include ,引入库函数 第二步,声明一个ofstream对象,调用ofstream的成员函数open函数,与指定的文件相关联 第三步,使用 最后一步,关闭输出流,调用close()函数 #include #include using na

Jaster_wisdom的专栏 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C++(20): 文件输入输出库 —— <fstream>

<fstream> 是 C++ 标准库中用于文件输入输出的核心组件,提供了文本和二进制文件的读写功能。其核心类包括 ofstream(写操作)、ifstream(读操作)和 fstream(读写操作)。通过示例展示了文本文件的写入、读取以及二进制文件的操作方法。文件打开模式支持多种组合,如读取、写入、追加和二进制模式。文件指针操作允许定位和获取当前读写位置。错误处理技巧包括检查文件状态和重置错误标志。实际应用场景包括配置文件读写、数据持久化、日志系统和大数据处理。掌握这些功能可有效处理文件操作需

weixin_62774747的博客 1302

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

fstream的基本用法

#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main(){ ifstream in; in.open("test.txt"); if(!in){ cout &lt;&lt; "open file failed" &lt;&lt; endl; ...

清风明月's blog 2万+

fstream的用法

C++ fstream详解_windistance的博客-优快云博客_fstream

a1444542375的博客 1053

谭浩强《C程序设计》(第四版)错误不完全汇集

前言 p12 ① 数据类型介绍中,增加了C99扩充的双长整型(long long int)、复数浮点型(float complex,double complex ,long long complex)、布尔型(bool)等,使读者有所了解。 ② C99要求,main函数的类型一律指定为int型,并在函数的末尾加一个返回语句“return 0;”。 评:long long complex,bool根本是子虚乌有的。数据类型都整不明白,还谈什么语言、算法呢? C99并没有要求main函数的类型一律指定为int型

qq_46699502的博客 2万+

C++文件读写详解(ofstream,ifstream,fstream)

在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结: 这里主要是讨论fstream的内容: #include ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中 fstrea

晨雪无痕 93万+

谭浩强《C++面向对象程序设计》中的一个小错误

谭浩强老师编辑的《C++面向对象程序设计》这本书写得非常好,令我可以在短时间内了解并熟悉C++的相关内容,在此感谢谭浩强老师与编辑社的辛勤努力!      在阅读《C++面向对象程序设计》 3.11类模板时,发现这个小节中有一个小错误。       3.11类的模板,在112页中,声明了这么一个类  1行       class Compare_int  2行      {

spencerzou的专栏 2607

fstream常用方法详解

<br /><fstream>库包含了三个基本的类:ifstream, ofstream和fstream。这三个类分别代表一个输入文件,一个输出文件,以及一个输入输出文件。Ifstream类支持>>操作 符,ofstream类支持<<操作符,fstream类同时支持>>和<<操作符。所 有<fstream>对象都能够把一个文件名当成构造函数的变量,并能够自动的打开文件,如: <br /><br /> std::ofstream dictionary("myfile.txt"); <br /><br

qiang60125的专栏 6万+

c语言中fstream用法,C++流操作之fstream用法介绍

在Windows平台对文件进行存取操作可选的方案有很多,如果采用纯C,则需要用到File*等,当然也可以直接调用WindowsAPI来做;如果采用C++,首先想到的就是文件流fstream。虽然在COM层面上,我们还可以使用IStream来实现文件的读写,其效率也非常高。不过本文仅对C++流操作做简单的探讨,相比于WindowsAPI或IStream,C++的流操作通用性更好一些,因为你能轻松将代...

weixin_39636898的博客 1485

C++中fstream 的使用一

stream(流) 对于头文件<fstream>是用来对文件的读取和操作的。

weixin_52190646的博客 3390

C++文件输入输出流fstream的用法

原文链接:https://www.dyxmq.cn/program/code/c-cpp/the-usage-of-fstream-in-cpp.html 一、文件流 C++的IO类中定义了三个文件读写流fstream、ifstream以及ofstream,它们都继承于相同的父类istream,通过不同的实现以实现不同的文件流操作。 三者的区别为: ifstream:从文件读取数据 ofstream:从文件写入数据 fstream:既可以读数据、又可以写数据 1.1 IO接口和读写模式 三个文件流实现了

HelloHello 7631
上一篇: malloc/free与new/delete的区别
下一篇: C++静态(static)成员 静态(static)成员函数总结
seadplus
博客等级 码龄15年 57粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值