鱼C论坛

 找回密码
 立即注册
查看: 1573|回复: 10

字符数组跟字符串数组问题

[复制链接]
发表于 2022-5-24 17:41:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

                               
登录/注册后可看大图

请问4为什么不可以,因为是字符不是字符数组吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-24 17:56:03 From FishC Mobile | 显示全部楼层
①和②都是错的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 17:56:40 | 显示全部楼层
'\0'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-24 18:03:35 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2022-5-24 18:06 编辑

答案是 1 和 3 是正确的:
#include <stdio.h>

int main()
{
    char *a;
    a = "string";
    
    char b[7] = "string";
    // b = "string"; 不能这样写
    
    char c[] = "string";
    
    char d[] = { 's', 't', 'r', 'i', 'n', 'g', '\0' };
    // char d[] = { 's', 't', 'r', 'i', 'n', 'g' }; 不能这样写
    
    printf("%s\n", a);
    printf("%s\n", b);
    printf("%s\n", c);
    printf("%s\n", d);

    return 0;
}
string
string
string
string
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 18:06:24 | 显示全部楼层

1把字符串常量的指针赋值给s没错

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 18:07:01 From FishC Mobile | 显示全部楼层
傻眼貓咪 发表于 2022-5-24 18:03
答案是 1 和 3 是正确的:

char *a;
    a = "string";
这样也可以吗
我记得char *a = "string";  这样可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 18:09:49 | 显示全部楼层
wp231957 发表于 2022-5-24 18:07
char *a;
    a = "string";
这样也可以吗


可以,char *a 很多人都误会了以为是字符串,其实是指针
指针可以改变的,右值不能改变。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 18:12:51 From FishC Mobile | 显示全部楼层
傻眼貓咪 发表于 2022-5-24 18:09
可以,char *a 很多人都误会了以为是字符串,其实是指针
指针可以改变的,右值不能改变。

a = "string";这个一旦赋完值就固定死了,再也无法改变???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 18:17:46 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2022-5-24 18:19 编辑
wp231957 发表于 2022-5-24 18:12
a = "string";这个一旦赋完值就固定死了,再也无法改变???


没有,可以改变指针指向
#include <stdio.h>

int main()
{
    char *a;
    
    a = "string";
    printf("%s\n", a);
    
    a = "banana";
    printf("%s\n", a);

    return 0;
}
string
banana
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 18:21:42 From FishC Mobile | 显示全部楼层
傻眼貓咪 发表于 2022-5-24 18:17
没有,可以改变指针指向


这有些颠覆我的认知,我的认知   字符串常量不可修改啊      改日我一定要亲自测试
多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-24 18:22:21 | 显示全部楼层
wp231957 发表于 2022-5-24 18:21
这有些颠覆我的认知,改日我一定要亲自测试
多谢

不客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 00:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表