c语言中字符串常量可写吗?

原创 2015年07月07日 19:32:23

在C语言中,字符串是存储在常量区,可读不可写。所以一下代码会输出they are equal并且会产生段错误(因为写了不能写的)。

#include <stdio.h>
int main(int argc,char *argv[])
{
char *p = "hahaha";
char *p2 = "hahaha";
if (p==p2)
	printf("they are equal\n");
*p2 = 'j';
printf("%c",*p);
}


相关文章推荐

C语言中字符串常量与字符数组

近日开始复习C语言,发现此前的学习中,对于字符,字符串的理解,还存在很多的纰漏之处。上午结合代码逐行调试,对几个基本概念进行了梳理, 现将一点粗浅的理解贴在这里,供备忘: 1. 字符 ...
  • bon27
  • bon27
  • 2012年11月22日 16:15
  • 672

C语言中字符串常量到底存在哪了?

常量存储总结 局部变量、静态局部变量、全局变量、全局静态变量、字符串常量以及动态申请的内存区 1、局部变量存储在栈中 2、全局变量、静态变量(全局和局部静态变量)存储在静态存储区 3、new申...

C语言中字符串常量到底存在哪了?

常量存储总结 局部变量、静态局部变量、全局变量、全局静态变量、字符串常量以及动态申请的内存区 1、局部变量存储在栈中 2、全局变量、静态变量(全局和局部静态变量)存储在静态存储区 3、new申...

C语言字符串常量存贮

字符串常量,我们经常用到,但是它到底放在哪个存储区呢?是“自动存储区”还是“静态存储区”中? 比如: char *pstr="hello world!";这里,"hello world!"是一个字符串...
  • faihung
  • faihung
  • 2017年03月31日 22:36
  • 161

c语言中的字符类型指针赋值字符串常量

char *p = “hello”; 上边的表达式为什么可以,而把p换成数组,然后再赋值就不行了 解释: 字符串常量”hello”出现在一个表达式中时,表达式使用的值就是这些字符所存储的地址,而...

C语言全局变量的初始化和字符串常量

在C中对于以下语句: // 全局域 int i = 3; int j = i;         编译时将i 放入.data 段,设置其值为3。而对于j,编译器遇到这种语句,只知道j = ...

C语言文件操作 fopen, fclose, mkdir(打开关闭文件,建文件夹,判断文件是否存在可读或可写)

1.建文件夹 int _mkdir(const char *path,mode_t mode); 函数名: _mkdir    功 能: 建立一个目录    用 法: int _mkdir( ...
  • gneveek
  • gneveek
  • 2011年10月07日 14:04
  • 49211

C语言文件操作 fopen, fclose, mkdir(打开关闭文件,建文件夹,判断文件是否存在可读或可写)

1.建文件夹 int _mkdir(const char *path,mode_t mode); 函数名: _mkdir    功 能: 建立一个目录    用 法: int _mkdir( ...

C语言文件操作 fopen, fclose, mkdir(打开关闭文件,建文件夹,判断文件是否存在可读或可写)

http://blog.csdn.net/gneveek/article/details/6848473  1.建文件夹 int _mkdir(const char...

字符串常量放在内存中的静态存储区

一、在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函...
  • glx2012
  • glx2012
  • 2013年04月08日 13:39
  • 957
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言中字符串常量可写吗?
举报原因:
原因补充:

(最多只允许输入30个字)