C程序 关于字符串的问题

#include<stdio.h>

void strcpy(char *s,char *t);

int main(){

		char *s = new char[100];
		s = "hello";
		//char s[100] = "hello";

		char *d = "world";
		strcpy(s,d);
		printf("%s\n",s);
		return 0;
}


void strcpy(char *s,char *t)
{
	while(*s++ = *t++)
		;
}

 

//A
char *s = new char[100];
s = "hello";

 

//B
char s[100] = "hello";

 

A 与 B的区别:

A中 s= new char[100];是将s指向这新申请的100个字符空间的首地址,而s="hello",已经修改了s的值,将s指向了字符串常量"hello"的首地址。
B 中s是一个长度为100的字符数组的首地址。

 

因此用A种这种方法时,运行是会提示修改的不能written的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值