字符串(C语言)

1.如果要声明一个字符串“NoMasp”,下面这行代码错在哪里?

char name[] = {'N', 'o', 'M', 'a', 's', 'p'};

如果想声明的是字符串,就需要在初始化时在结尾加上一个’\0’。或者可以直接用下面这张方式:

char name[] = "NoMasp";

2.以下这段代码会打印出什么?

#include <stdio.h>

int main()
{
    char nomasp[]="I like C language.";
    char *ptr;

    ptr=nomasp;
    ++ptr;
    nomasp[6]='\0';
    puts(++ptr);

    return 0;
}

在ptr执行自增操作之后就是指向字母’I’后的空格,而后在索引为6的地方改为’\0’因此字符串在这里就被截断了。所以最后打印出来的是”like”。

3.’A’一定比”A”更加节省空间吗?

不一定。字符常量是存储在int中的,也就是说’A’会占用2个或4个字节,虽然它’A’实际上只使用了一个字节来存储它的编码。而”A”则使用了2个字节,一个字节用来保存’A’,另一个字节用来保存’\0’。

char c = 'A';

c作为字符变量则占用1个字节。



为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值