字符数组与与指针保存字符串区别
2017-08-20 15:06
369 查看
#include <stdio.h> int main(int argc, char **argv) { char str[] = "gyu"; //charr*str = "gg" printf("str address is %p\n", str); fun(&str); printf("main -- %s p is %p\n", str, (unsigned int *)str); fun1(&str); printf("-----%s\n", *(argv+2)); printf("main -- %s\n", str); } int fun(char **str) { *str = "1234"; printf("FILE %s---LINE %d---%s--p is %p\n",__FILE__,__LINE__,*str, *str); } int fun1(char **str) { *str = "kkkk"; printf("---%s\n",*str); printf("FILE %s---LINE %d---\n",__FILE__,__LINE__); }
所示程序,若指针指向一个字符串,这个字符串是保存在数据段常量区的,是不可以修改的,不能strcat使用这个指针。但我们可以让这个指针指向其他的字符串。
但是所示数组保存字符串的话,是存在栈区的,数组又是常量指针,即数组的这地址是不可以修改的,所以上面程序不会修改字符串的值。
相关文章推荐
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 使用字符串指针变量和字符数组的区别
- 字符指针,字符数组,双引号的字符串的区别与联系
- 字符数组与指向字符串的指针的区别
- 关于数组与指针的应用及区别-针对字符串去左边多余的‘0’字符
- 字符串指针与字符数组的区别(一)--字符串常量的值不能改
- 字符串指针和字符数组的又一区别
- c语言指针字符串与字符数组字符串的区别
- 字符串指针与字符数组的区别
- 字符串指针与字符数组的区别
- 字符数组名与字符串指针变量名的区别
- 字符串指针与字符数组的区别
- 数组和指针的区别、字符数组和字符串指针区别
- 字符串指针与字符数组的区别
- 指向字符串的指针 和 字符数组的区别
- 数组与指针保存字符串的区别
- 字符数组与字符串指针的区别
- 字符串指针变量与字符数组的区别
- 字符串指针与字符数组的区别