char *string;
string="hello";
这三个有什么区别
char *string=“hello”; 和char *string; *string="hello";有什么区别呢?详细说明 c语言
答案:1 悬赏:60 手机版
解决时间 2021-02-25 11:52
- 提问者网友:献世佛
- 2021-02-25 07:51
最佳答案
- 五星知识达人网友:不甚了了
- 2021-02-25 09:01
第一个的意思就是说定义了一个char型指针,这个指针指向代码区中的“hello”这个字符串的首地址,是正确的;
第二个是错的,它先定义了一个char型的野指针,这个指针随机的指向内存空间的一片空间,
而*string = "hello"的意思就是将“hello”这个字符串存到这片空间,这可能出现两种情况:
1,、什么事也没有,这是因为string指向的空间是可修改的,但是这破坏了其他的数据;
2、出现段错误,这是因为string指向的空间是不可修改的。
所以,不要使用也指针,你可以定义为空指针,如:char* string = NULL; 这样做,
*string = "hello"就编译不通过了。
第二个是错的,它先定义了一个char型的野指针,这个指针随机的指向内存空间的一片空间,
而*string = "hello"的意思就是将“hello”这个字符串存到这片空间,这可能出现两种情况:
1,、什么事也没有,这是因为string指向的空间是可修改的,但是这破坏了其他的数据;
2、出现段错误,这是因为string指向的空间是不可修改的。
所以,不要使用也指针,你可以定义为空指针,如:char* string = NULL; 这样做,
*string = "hello"就编译不通过了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯