翁恺老师C语言学习笔记(十一)字符串_字符串常量

这篇博客介绍了C语言中字符串常量的概念,强调了字符串常量在内存中的只读属性,并通过代码示例展示了如何避免警告和错误。文章探讨了使用`const`关键字的重要性,并区分了使用指针和数组处理字符串的不同场景。最后,讨论了`char`类型与字符串的关系,指出不是所有`char*`都是字符串,只有以``结尾的字符数组才是。
摘要由CSDN通过智能技术生成

字符串常量

char* s = "Hello,world!"

我们先看一段代码

#include<stdio.h>

int main(void) {
	char *s = "Hello World";
	s[0] = 'B';

	printf("Here!s[0]=%c\n", s[0]);
	return 0;
}

我在这里编译时会报错,老师这里竟然时通过的,网上查了下,有两种方案,有几种方案,我是用了const 改变为常量

[Warning] deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

#include<stdio.h>

int main(void) {
	const char *s ="Hello World";
	//s[0] = 'B';
	const char *s2 ="Hello World";
	
	printf("s=%p\n", s);
	printf("s2=%p\n", s2);
	printf("Here!s[0]=%c\n", s[0]);
	return 0;
} 

输出结果:

s=00404000
s2=00404000
Here!s[0]=H

从这里我们可以看出,他们在内存中的地址是一样的,我们再添加一个i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值