字符串常量与变量
来源:互联网 发布:金税盘备份的数据 解压 编辑:程序博客网 时间:2024/05/16 16:08
检查下列程序是否有错误
#include <stdio.h>#include <stdlib.h>int main(){char *s = "AAAA";printf("%s\n", s);s[0] = 'B';printf("%s\n", s);getchar();return 0;}
运行后
sort.exe 中的 0x012235e3 处未处理的异常: 0xC0000005: 写入位置 0x01225740 时发生访问冲突
"AAAA" 是常量,s是指针,指向常量,所以再对是s[0]赋值不合适
</pre>再看下一个<p></p><p></p><pre name="code" class="html">#include <stdio.h>#include <stdlib.h>int main(){char str[] = "AAAA";char *s = str;s[0] = 'B';printf("%s\n", s);getchar();return 0;}运行结果: BAAA
s指向变量,可以赋值
再看下一个
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc";const char str4[] = "abc";char *str5 = "abc";char *str6 = "abc";const char *str7 = "abc";const char *str8 = "abc";printf("%d\n",str1 == str2);//0printf("%d\n",str3 == str4);//0printf("%d\n",str5 == str6);//1printf("%d\n",str7 == str8);//1getchar();return 0;}1)str1 和str2 不相等,两个数组是变量,为了保证他们独立,他们的地址是不一样的,否则,一个数组改变,另外一个数组也改变
2)str3和str4可能相等也可能不等,两个都是数组常量,不可以修改,有的编译器可以优化,让两个地址一样,有的则保留原来的风格,两个地址不一样
3)str5和str6相等 “abc”在内存中是常量,指向他的指针地址一样
4)同3)
0 0
- 字符串常量与变量
- 字符串常量与字符串变量
- 字符串常量与字符串变量
- 字符串常量与字符串变量
- 字符串常量与字符串变量的区别
- C++中字符串常量与字符串变量
- 变量、常量、字符串
- 字符串常量和变量
- 常量变量字符串字典
- 字符串常量和字符串变量
- 字符串常量与字符常量
- 字符常量与字符串常量
- 字符常量与字符串常量
- 变量与常量(1)
- 3.1 常量与变量
- 变量与常量
- 变量与常量
- java变量与常量
- POJ 2248 & ZOJ 1937 Addition Chains
- IOS中动画的实现:以及视图的移动、缩放和旋转
- 按键扫描程序
- Openstack kilo指南安装与实践(3)
- Mac安装Pcre
- 字符串常量与变量
- 如何简单判断回文字符
- Spring学习笔记-spring基础知识概述
- c语言运算符优先级
- 最近在配置LAMP服务器,需要用到vi,所以重新学习整理了一下
- CODE COMPLETE 2e Chapter 7
- IOS UI NavigationController结构
- poj 3090:Visible Lattice Points
- android studio 编译问题,依赖找不到