琐记1:字符串常量与数组的部分区别
2017-08-02 21:46
239 查看
1、指针的指向可以改变,但这要区分于字符串常量的改变:
这里p指针打印出的值不再是a,而是重新指向的b的值。而:
2、虽说数组名可以看成其首元素的地址,但数组是常量,不能进行++这类的操作
char a[20] = "abcdefg"; char b[20] = "qwertyu"; char *p = a; p = b; printf ("%s %s\n", a, b); printf ("%s\n", p);
这里p指针打印出的值不再是a,而是重新指向的b的值。而:
char *num = "abcdefg"; scanf ("%s", num); printf ("%s\n", a);这样是对一个字符串常量读值,会出现段错误。要避免这样的段错误,可以用到一个字符串数组:
char a[20] ;// 可以不用赋初值,而且这里如果对其赋初值NULL将不会出现段错误,但值并不会改变,还是null char *num = a; scanf ("%s", num); printf ("%s\n", a);
2、虽说数组名可以看成其首元素的地址,但数组是常量,不能进行++这类的操作
int a[5] = {1,2,3,4,5}; int i; for (i = 0; i < 5; i++) printf ("%d\n", *a++); // *a++ 即 *(a++), 区别于(*a)++这里就需要定义一个指针来进行这样的遍历打印操作。
相关文章推荐
- C中常量字符串和字符数组的区别
- char * 与 char [] 区别,char *[] 与 char[][]区别。字符串指针的数组与二维char数组区别。字符串常量赋予指针与字符数组区别。"字符串"等价于其首元素"字"的地址
- C中常量字符串和字符数组的区别
- 数组方式赋值字符串及字面值常量赋值字符串的区别
- 字符串指针和字符串数组的区别
- String类以及如何将字符串转化为数组,将字符和各种数值返回字符串格式,Integer和int 区别,StringBuilder和StringBuffer区别
- C常见问题之字符串的数组形式与指针形式的区别
- 字符串与字符数组的区别(摘自c++primer)
- C语言字符串指针与字符数组的区别
- 整形数组与字符串(字符数组)nex_permutation(或者是prve_permutation)的区别
- 第六章:常量、宏、枚举及函数 第七章:数组、字符串
- C/C++中字符串数组及strlen()和sizeof()区别
- 字符数组和字符串的区别
- 字符串指针与字符数组的区别(一)--字符串常量的值不能改
- 字符数组、字符串及常量字符串详解
- 指向字符串的指针 和 字符数组的区别
- 字符串的数组表示法&指针表示法&常量表示法
- c++ 指针值和指针地址的输出&指针和数组保存字符串的区别
- PHP的CURLOPT_POSTFIELDS参数使用数组和字符串的区别
- 字符串数组和字符串指针的区别联系