C-字符串常量

相同的字符串常量是共享的,而且是不可写的。

 1 #include <iostream>
 2 using namespace std;
 3
 4 char *string1, *string2;
 5
 6 int main() {
 7     string1 = "abcd"; string2 = "abcd";
 8     if(string1 == string2) printf("strings are shared!\n");
 9     else printf("strings are NOT shared!\n");
10     //有可能运行时错误
11     //string1[0] = ‘1‘;
12     if(*string1 == ‘1‘) printf("string are writable!\n");
13     else printf("string are NOT writable!\n");
14
15     return 0;
16 }

输出:

$ ./a.exe
strings are shared!
string are NOT writable!

C-字符串常量,布布扣,bubuko.com

时间: 2024-10-26 17:34:40

C-字符串常量的相关文章

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

string字符串常量池在内存中的位置

这里仅仅是举个简单的样例说明字符串常量池在内存中的位置. 闲言少叙,直接上代码. Java代码   <span style="font-size: large;">import java.util.ArrayList; public class Test { public static void main(String[] args) { String str = "abc"; char[] array = {'a', 'b', 'c'}; String

java字符常量与字符串常量的区别

形式上:字符常量是单引号引起的一个字符例:‘a’字符串常量是双引号引起的若干个字符"helloworld"含义上:字符常量相当于一个整形值(ASC||值),可以参加表达式运算,直接拿变量使用字符串常量代表一个地址值(该字符在内存中存放的位置)占内存大小:字符常量只占一个字节字符串常量占若干个字节字符型常量使用char型变量来存储字符串用char型的数组来存储 类型字符类型为char,字符串类型为string两者都是常量,区别于使用方法的不同

Java中字符串常量池的陷阱

public class TestCase { static String ab = "ab"; static String getA() { return "a"; } static String getAB() { return "ab"; } public static void main(String[] args) { // 1 String _ab = new String("ab"); System.out.pr

C++常量(C++数值常量、字符串常量、符号常量)

http://see.xidian.edu.cn/cpp/biancheng/view/104.html 字符串常量 用双撇号括起来的部分就是字符串常量,如"abc","Hello!","a+b","Li ping"都是字符串常量.字符串常量"abc"在内存中占4个字节(而不是3个字节),见图2.5. 图 2.5 编译系统会在字符串最后自动加一个'\0'作为字符串结束标志.但'\0'并不是字符串的一部分,它

Python学习总结4:字符串常量与操作汇总

参考博客:http://www.cnblogs.com/Camilo/archive/2013/09/21/3332267.html http://www.cnblogs.com/SunWentao/archive/2008/06/19/1225690.html 1. 字符串常量 string.digits:包含0-9的字符串    string.letters:包含所有大小写字母的字符串     string.lowercase:所有小写字母    string.printable:包含所有可

字符串常量池、堆、栈

String a="a"+"b"+"c" 创建了几个对象 这个问题涉及到了字符串常量池和字符串拼接 String a="a"+"b"+"c" 通过编译器优化后,得到的效果是 String a="abc" Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid"; 另一种就是使用new这种标准的构造对象的方法,

指针和字符串和字符串常量、用gdb来获取非法内存中的信息

例程1 #include<stdio.h> int main(void) { char *s="hello"; printf("%s\n", s); s[0]="H" //因为s指针指向的字符串"hello"是字符串常量,所以不能通过指针进行更改,所以这里会产生段错误 printf("%s\n", s); return 0; } 例程2 #include<stdio.h> #incl

使用struts2的标签s:if获取url中的参数值,并与字符串常量进行比较

大家都知道,jsp中最好不要写java脚本,稍微复杂一点的逻辑都会让代码十分难看,对于维护来说简直是噩梦.但是我们又不可能完全不在jsp中写java脚本,像<%= request.getContextPath()>这种方式,很方便而且也不会让代码很难看.当jsp中需要有复杂的逻辑判断或者循环的时候,最好使用标签库来提高代码的可维护性,比如标准的JSTL库,还有很常用的struts2标签库. 比如有一个url http://127.0.0.1:8080/demo/test.jsp?id=1 ,我

static关键字以及字符串常量的理解

一.作用域.链接属性以及存储类型: 1.      作用域:常见作用域有代码块.文件.函数以及原型作用域(只适用于在函数原型中声明的参数名). 2.      链接属性: a)        链接可以将多个目标文件链接生成最后的目标文件.链接属性则是决定如何处理在不同文件中出现的标识符. b)        链接属性总共有三种:external(外部).internal(内部)以及none(无).默认情况下标识符一般是外部或者无属性,但是,通过static关键字,则可以改变标识符的属性,将外部属