c语言练习题40:深入理解字符串常量

深入理解字符串常量

cpp 复制代码
#include<stdio.h>
int main() {
	char str1[] = "abcd";
	char* str2 = "abcd";
	printf("%s\n", str1);
	printf("%s\n", str2);
	return 0;
}

char str1[] = "abcd";是用字符串初始化数组。

char* str2 = "abcd"; "abcd"为字符串常量

字符串常量不能被修改

例如1:

cpp 复制代码
#include<stdio.h>
int main(int argc,const char*argv[]) {
	char* a[] = { "Work","at","huawei" };
	char** p = a;
	*(*(p + 2) + 1) = 'H';
	printf("%c %c\n", a[2][1], *(*(p + 2) + 1));
	return 0;
}

VS环境下没有输出,但linux下会报错

例如2:

相关推荐
CS Beginner6 分钟前
【C语言】windows下编译mingw版本的glew库
c语言·开发语言·windows
JAY_LIN——815 分钟前
指针-数组
c语言·排序算法
Xの哲學33 分钟前
Linux流量控制: 内核队列的深度剖析
linux·服务器·算法·架构·边缘计算
tuokuac1 小时前
docker中nginx配置报错解决
linux·运维·服务器
yaoh.wang1 小时前
力扣(LeetCode) 88: 合并两个有序数组 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·双指针
Zeku1 小时前
20251129 - 详细解析Linux的mmap(内存映射)
linux·驱动开发·嵌入式软件·linux应用开发
进阶的猪1 小时前
STM32 使用HAL库SPI读写FLASH(W25Q128JV)数据 Q&A
c语言·stm32·单片机
LYFlied2 小时前
【每日算法】 LeetCode 56. 合并区间
前端·算法·leetcode·面试·职场和发展
Joren的学习记录2 小时前
【Linux运维大神系列】docker详解(四)
linux·运维·docker
艾醒2 小时前
大模型原理剖析——多头潜在注意力 (MLA) 详解
算法