Chinaunix首页 | 论坛 | 博客
  • 博客访问: 828904
  • 博文数量: 281
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-02 19:45
个人简介

邮箱:zhuimengcanyang@163.com 痴爱嵌入式技术的蜗牛

文章分类
文章存档

2020年(1)

2018年(1)

2017年(56)

2016年(72)

2015年(151)

分类: 其他平台

2017-02-13 11:21:37

  1. sizeof是操作符,不是函数。它后面的()并不是必须的,没有歧意时就不必写上了。sizeof操作符计算的是系统为它后面的变量或类型名分配的空间大小,无论其中是否存储了有用数据。

  2. strlen()是库函数,()中必须是字符串指针或字符串常量,它返回的是检测对象中第一个'\0'前的字符个数,不含'\0'。

下面的代码可能对此解惑:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
int main(void){
    char s[50]="1234",p[100]={'f','j','k','d','s','a','l','\0','1','2','3','4','5','\0'};
    printf("sizeof(s) = %d\n",sizeof s);//这里s没有加(),也正确
    printf("strlen(s) = %d\nstrlen(p) = %d\n",strlen(s),strlen(p));
            //上句检测p时遇到第一个'\0'就结束了
    return 0;
}
阅读(712) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~