有关字符数组的若干问题
2013-12-03 11:10
169 查看
1、给字符数组char a[10]赋值的方法:定义时直接赋值char a[10]="hello";
注意:不能先定义再给它赋值,如
char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy赋值
char a[10]; strcpy(a, "hello");
4、char a[10]; a[10]="hello";//错误!!一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
5、char a[10]; a="hello";//错误!!这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!
6、不能使用关系运算符“==”来比较两个字符串(但可以比较两个字符),只能用strcmp() 函数来处理。
7、char *a="aa";
char *b="bb";
a[1]=b[1];
这种赋值方法是错误的,原因在于,a和b指向的是常量字符串,不能改变里面的值。
8、字符数组必须初始化才能使用,否则会出错:
或者是
注意:不能先定义再给它赋值,如
char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy赋值
char a[10]; strcpy(a, "hello");
4、char a[10]; a[10]="hello";//错误!!一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
5、char a[10]; a="hello";//错误!!这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!
6、不能使用关系运算符“==”来比较两个字符串(但可以比较两个字符),只能用strcmp() 函数来处理。
7、char *a="aa";
char *b="bb";
a[1]=b[1];
这种赋值方法是错误的,原因在于,a和b指向的是常量字符串,不能改变里面的值。
8、字符数组必须初始化才能使用,否则会出错:
char *a; a[0]='a';
或者是
char a[10]; char b=a[0];
相关文章推荐
- 有关宽字符的输出问题
- [转载]有关DLL中New和外部Delete以以及跨DLL传递对象的若干问题
- IOS_FMDB有关字典、数组存储及获取问题
- 两个有关数组的变量名和其地址的问题?
- C++字符数组越界问题的一个案例分析
- 【转】有关环境变量的若干问题?
- C++,字符数组,赋值问题,语法练习
- 关于memcpy拷贝结构体、结构体数组到字符数组(字符串)的问题
- 字符数组的输出问题
- SetLength设置动态数组长度的有关问题
- C++字符数组中的‘\0’问题
- 有关String.getBytes()和String.tocharArray()的区别 字节数组和字符数组的区别
- JPasswordField 中得到的字符数组转化为字符串(密码乱码问题)
- [Java基础] 数组声明有关问题分析
- 有关宽字符wchar_t编码方式的问题
- 利用"线段树"相关算法解决有关数组的问题[待续]
- 字符数组初始化问题
- 关于函数字符数组调用的问题(没有搞清指针的概念)
- otl中遇到的一些字符数组长度问题
- 3.C语言凯撒密码(有关缓冲区)以及数组越界问题