码迷,mamicode.com
首页 > 编程语言 > 详细

字符指针与字符数组

时间:2016-05-22 23:03:12      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:

学了挺久的c语言,c语言有意思的就有指针这一大块,另外就是字符串,字符指针与字符数组的区别对于初学者应该是比较难以区分的,讲讲自己的看法。

1.定义上的区别

字符数组具有固定的地址,且字符数组的名字不能更改或运算。

字符指针是一个变量,用来存储首字符的地址,且指向的字符串通常为一个常量。

char str[] = "helloworld";
str[4] = X;
printf("%s",str);

输出结果:hellXworld
char *str = "helloworld";
str[4] = X;
printf("%s",str);

输出结果:
已停止工作,windows正在检查该问题的解决方案:)

2.初始化

字符数组的初始化:

char str[]="helloworld"                                       // ok
char str[]={h,e,l,l,o,w,o,r,l,d}           //ok
char str[20];
str="helloworld";                                              //error

字符指针的初始化:

char *str="helloworld"         //ok
char *str;
str="helloworld";              //ok

3.赋值

字符数组只能对单个元素进行赋值

str[4]=X                  //ok
strcpy(str,"hello")         //ok
str="hello"                 //error

指针变量可直接运算赋值

str++                    //ok
str=“hello”             //ok

注意:字符数组本身的属性为字符指针,即char str[]="hellowolrd",其中str的类型为char *

下面附带判断字符串结尾的方法:

*str != \0           //ok
*str != NULL        //ok
*str != 0              //ok
str != NULL          //error
str[4]!=NULL        //ok

字符指针与字符数组

标签:

原文地址:http://www.cnblogs.com/monster-prince/p/5517833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!