`
jiq408694711
  • 浏览: 36607 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

sizeof和strlen

 
阅读更多
#include <iostream>
#include <memory.h>

using namespace std;

/* */
void test(){
	char *a = "hello";
	char b[] = {'h','e','l','l','o','\0'};
	char c[] = "hello";
	
	cout<<sizeof(a)<<endl;	//4
	cout<<sizeof(b)<<endl;	//6
	cout<<sizeof(c)<<endl;	//6(注意这个是6,计算大小的时候包含进去了'\0')
	cout<<strlen(a)<<endl;	//5
	cout<<strlen(b)<<endl;	//5(若不加'\0'结尾,则结果不确定)
	cout<<strlen(c)<<endl;	//5(若不加'\0'结尾,则结果不确定)
}

/* */
void testArray(){
	int a[][4] = {{1,2,3},{1},{2,3},{1,3}};
	int b[][3] = {{1,2,3},{1},{2,3},{1,3}};
	cout<<"sizeof(a):"<<sizeof(a)<<endl;
	cout<<"sizeof(a):"<<sizeof(b)<<endl;
}

/* */
void testStrcpy(){
	char *a = "hello";
	char *b;
	//b = (char *)malloc(sizeof(char)*strlen(a));	//can work, but not right
	b = (char *)malloc(sizeof(char)*(strlen(a)+1));
	strcpy(b,a);
	cout<<b<<endl;
}

void testMemCpyMove(){
	//char *a = "0123456789"; //error,字符串常量不能修改
	char a[] = "0123456789";  //字符数组可以修改,不是存在常量区
	
	memcpy(a+4,a,6);
	cout<<"a:"<<a<<endl;	//can work: 0123012345

	char b[] = "0123456789"; 
	memmove(b+4,b,6);
	cout<<"b:"<<b<<endl;	//can work: 0123012345
}
/*  */
void testArrayPointerXXX(int a[]){
	cout<<sizeof(a)<<endl; //4
}

int main(){
	int a[] = {2,4,5,3,9,13,8,6};

	cout<<"测试数组"<<endl;
	cout<<sizeof(a)<<endl; //32,数组
	testArrayPointerXXX(a);

	test();
	testArray();

	cout<<"测试字符串拷贝函数"<<endl;
	testStrcpy();

	cout<<"测试内存拷贝函数"<<endl;
	testMemCpyMove();
	return 0;
}

分享到:
评论

相关推荐

    sizeof和strlen区别

    在C/C++编程语言中,`sizeof`和`strlen`是两个非常重要的操作符,它们分别用于获取数据类型的大小和字符串的长度。然而,这两个操作符有着本质的区别,理解和掌握它们的区别对于编写高效且无误的代码至关重要。 ...

    sizeof和strlen的区别

    `sizeof`和`strlen`是C语言中两个非常重要的概念,它们在处理内存和字符串长度时发挥着不同的作用。理解这两个操作符的区别对于编写高效、可靠的C程序至关重要。 `sizeof`是一个运算符,用于获取类型或者变量在内存...

    sizeof与strlen区别详解

    sizeof和strlen是两个常用的操作符和函数,但是它们的使用场景和返回结果却有很大的区别。本文将详细介绍sizeof和strlen的区别和联系。 1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型...

    sizeof 和strlen 区别.pdf

    在C语言中,`sizeof`和`strlen`是两个非常重要的工具,它们分别用于获取不同类型的大小信息。`sizeof`是一个运算符,而`strlen`是一个函数,它们有着明显的区别。 1. `sizeof`运算符: - `sizeof`在编译时计算,...

    sizeof 和strlen的区别

    在计算机编程领域,尤其是C语言或C++等底层语言中,`sizeof`和`strlen`是两个非常重要的操作符或函数,它们各自有着独特的用途和应用场景。本文将深入探讨这两个概念的区别及其背后的原理。 ### `sizeof`操作符 `...

    从一维数组看sizeof和strlen

    "从一维数组看sizeof和strlen" 一维数组在编程中非常常见,而sizeof和strlen是两个常用的函数用于获取数组或字符串的长度。然而,在使用sizeof和strlen时,很多开发者都会遇到一些问题,这篇文章将介绍sizeof和...

    sizeof与strlen区别

    在C/C++编程语言中,`sizeof`和`strlen`是两个非常重要的概念,它们都用于获取有关数据的信息,但各自的作用和应用场景有所不同。本文将详细介绍这两个操作符/函数的用法及其区别。 #### 二、sizeof详解 `sizeof`...

    Sizeof与Strlen的区别与联系

    Sizeof和Strlen是C++中用于处理内存和字符串长度的两个重要工具,它们有着显著的区别和特定的应用场景。 一、Sizeof Sizeof是一个运算符,它在编译时进行计算,返回值类型为size_t,即无符号整型,能够容纳系统中...

    Sizeof与Strlen的区别与联系.pdf

    Sizeof和Strlen是C/C++编程语言中用于获取数据大小和字符串长度的两个重要工具,但它们的作用和使用场景有所不同。 1. **Sizeof运算符**: - Sizeof是一个运算符,它在编译时计算表达式的大小(以字节为单位)。这...

    浅谈sizeof与strlen函数的区别.docx

    在编程领域,了解并掌握sizeof和strlen这两个关键函数的用法至关重要,它们在处理内存和字符串长度时起到关键作用。本文将深入探讨这两个函数的概念、工作原理以及它们之间的差异。 首先,我们来看sizeof。这是一个...

    strcpy,sprintf,memcpy的区别,Sizeof与Strlen的区别.docx

    本文将详细解析strcpy、sprintf、memcpy这三个函数的区别,以及sizeof和strlen这两个操作的区别。 首先,strcpy是一个专门用于字符串拷贝的函数,它从源字符串复制内容到目标字符串,直到遇到终止符'\0'为止。例如...

    计算数值有几位,非sizeof和strlen算法.cpp

    主要是下载分不够了,希望上传代码赚几分回来。 小白yige,这些代码是学习C的时候习题代码,没有什么实用价值,高手就别来笑话我了,特别是那些和我一样还在自学的朋友相互之间交流一下。

    Sizeof运算符与Strlen函数的区别与联系.pdf

    Sizeof运算符与Strlen函数在C/C++编程中扮演着不同的角色,它们的主要区别在于作用对象和计算方式。下面将详细阐述这两个概念及其应用场景。 1. Sizeof运算符: - Sizeof是一个操作符,它返回其操作数类型的字节数...

    sizeof与strlen的区别共4页.pdf.zip

    在编程领域,`sizeof`和`strlen`是两个非常重要的概念,它们分别用于获取不同类型的大小和字符串长度。本文将详细解析这两个函数的区别,并通过实际示例进行深入讲解。 首先,`sizeof`是一个运算符,它返回一个类型...

    Sizeof与Strlen的区别与联系.docx

    在计算机编程中,`sizeof`和`strlen`是两个经常使用的操作符和函数,它们在处理字符串和数据类型时有着不同的作用和特性。本文将深入探讨它们之间的区别和联系。 首先,`sizeof`是一个C++和C语言中的运算符,用于...

    浅谈sizeof与strlen函数的区别.pdf

    在C语言中,`sizeof`和`strlen`都是用来获取内存占用信息的重要工具,但它们的应用场景和计算方式却有着显著的区别。本文将详细解析这两个操作符的特性。 首先,`sizeof`是C语言中的一个操作符,而不是函数。它能够...

    c语言strlen转义字符,转义字符 & sizeof & strlen-CSDN博客.mhtml

    c语言strlen转义字符,转义字符 & sizeof & strlen-CSDN博客.mhtml

Global site tag (gtag.js) - Google Analytics