`

C语言数据类型的理解

 
阅读更多

标准C语言提供了一下基础类型及结构体和联合体:

char(1),short(2),int(4),float(4),double(8),通过以下代码可以辅佐验证。

 

#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"

void print(char arr[], char *pt);

int main(int argc, _TCHAR* argv[])
{
	char *t = "abc";
	printf("pointer is %s\n", t);
	printf("addr of pointer is %d\n", &t);
	
	char arr[20];
	char *pt = (char *)malloc(sizeof(char) * 20);
	//原始类型
	printf("sizeof original arr :%d\n", sizeof(arr));
	printf("sizeof original p :%d\n", sizeof(pt));
	//参数传递后
	print(arr, pt);
	//基础数据类型(primative)
	unsigned char byte;
	printf("sizeof byte :%d\n", sizeof(byte));
	printf("sizeof char :%d\n", sizeof(char));

	short _2byte;
	printf("sizeof short :%d\n", sizeof(_2byte));
	printf("sizeof int :%d\n", sizeof(int));

	printf("sizeof float :%d\n", sizeof(float));
	printf("sizeof double :%d\n", sizeof(double));

	system("pause");
	
	return 0;
}

void print(char arr[], char *pt) 
{
	printf("sizeof arr :%d\n", sizeof(arr));
	printf("sizeof pt :%d\n", sizeof(pt));
}

 

运行结果如下:

href-------------------------------------

其中指针是内存地址,所以等于地址总线宽度这里和int的大小一致( 不同平台长度可能不一样);数组大小即是数组长度,但是作为实参传递后,数组退化为指针,长度变为4

C中没有java中byte类型,内存分配是以char为单位。

 

关于sizof在百度百科中有如下说明:

 

sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
MSDN上的解释为:
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t.
其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为1 
typedef unsigned int size_t;
在C99及以上标准中,sizeof(char)、sizeof(int)、sizeof(long)、sizeof(long long)、sizeof(float)、sizeof(double)、sizeof(long double)的值分别是1,4,4,8,4,8,16。 [1]

sizeof的计算发生在编译时刻,所以它可以被当作常量表达式使用,如:char ary[sizeof(int)*10];//ok

 

参考资料:

https://baike.baidu.com/item/sizeof

https://blog.csdn.net/zerooffdate/article/details/79511085

https://blog.csdn.net/test1280/article/details/70195554

分享到:
评论

相关推荐

    C语言数据类型.ppt

    C语言数据类型 C语言数据类型是指C语言中可以使用的各种数据类型,包括基本类型、构造类型和指针类型。理解数据类型是学习C语言的基础。...C语言数据类型是C语言的基础,理解数据类型是学习C语言的关键。

    c语言数据类型课件讲义指导

    《C语言数据类型课件讲义指导》 C语言是一种广泛应用的编程语言,以其简洁、高效和灵活性著称。在C语言中,了解并掌握数据类型是编程的基础。本讲义将深入探讨C语言的数据类型、常量与变量以及相关的编程规则。 1....

    C语言数据类型/运算符/表达式.rar

    本压缩包“C语言数据类型/运算符/表达式.rar”显然是一个关于C语言基础知识的学习资料,主要涵盖了数据类型、运算符以及表达式这三大核心概念。 首先,我们来探讨C语言中的数据类型。数据类型是C语言的基础,它定义...

    C语言数据类型转换的探讨.pdf

    本文将深入探讨C语言中的数据类型转换,帮助开发者更好地理解和运用这一概念。 一、隐式类型转换(自动类型转换) 当不同类型的数值进行运算时,C语言会自动进行类型转换,以保证操作的正确性。例如,如果一个int...

    C语言中数据类型教学方法探讨.pdf

    本文探讨了C语言中数据类型教学方法,旨在帮助学生更好地理解和应用C语言中的数据类型。文章首先强调了数据类型在C语言学习中的重要性,然后对基本数据类型进行了分类,包括整型数据、浮点型数据和字符型数据。接着...

    吉林大学C语言数据类型PPT学习教案.pptx

    总的来说,理解和掌握C语言中的数据类型及其运算规则是编程的基础,这有助于编写出有效、高效的代码。学习C语言,不仅需要熟悉这些基础知识,还要通过实践来加深理解,通过编写和调试代码来提升技能。

    C语言实验(C语言数据类型及输入输出函数)[文].pdf

    这样的练习有助于巩固对C语言数据类型和输出函数的理解。 总的来说,这个实验覆盖了C语言编程的基础知识,包括数据类型的定义、取值范围、内存占用以及基本的输入输出操作。掌握这些内容是学习更高级C语言编程技巧...

    c语言数据类型

    C语言是一种强大的编程语言,它的核心之一就是数据类型。数据类型定义了变量的存储方式、取值范围以及可执行的操作。下面将详细讲解C语言中的数据类型。 首先,C语言中的基本数据类型包括数值类型、字符类型和空...

    10.第六讲.C语言数据类型及表达式上--力天手把手教你学单片机之基础篇

    第六讲.C语言数据类型及表达式上--力天手把手教你学单片机之基础篇"中,我们将深入探讨C语言的基础知识,特别是数据类型和表达式,这对于理解和编写单片机程序至关重要。C语言是一种广泛应用的编程语言,尤其在...

    C语言数据采集与处理

    C语言的核心在于它的简洁性和强大的功能,它提供了丰富的数据类型,如整型、浮点型、字符型等,以及控制结构(如if语句、switch语句、for和while循环)和函数定义。通过这些基础,我们可以构建出复杂的程序逻辑,以...

    理学C语言数据类型和玉那算规则PPT课件.pptx

    C语言是计算机编程的基础语言,它的数据类型和运算规则构成了理解C语言程序设计的核心内容。C语言的发展历程始于贝尔实验室的Dennis Ritchie在1972年,它以其高效、简洁和强大的低级硬件控制能力而著名。C语言的程序...

    C语言课件-数据类型-5250.pptx

    C语言数据类型和常量 C语言是一种功能强大且广泛使用的程序设计语言,在计算机程序设计中占据着重要的地位。了解C语言的数据类型和常量是学习C语言的基础。 C语言的数据类型可以分为两大类:基本类型和构造类型。...

    C语言基本数据类型.ppt

    总结来说,理解C语言的基本数据类型及其表示方式是编写有效C程序的基础。通过掌握这些概念,程序员可以有效地管理内存,创建和操作不同类型的数据,以及编写出高效且准确的代码。在准备考试时,确保对这些知识点有...

    C语言数据结构与算法WORD版

    通过学习《C语言数据结构与算法》,你可以全面提升你的编程能力,从概念理解到实践应用,逐步成为一名熟练的C语言程序员。同时,这份资料集成了多位高级教师的笔记和C网的精华,将帮助你在学习过程中少走弯路,更好...

    C语言经典习题(内部资料)|C语言深入理解

    1. **基本语法**: C语言的基础包括变量、数据类型、运算符、控制结构(如if语句和switch语句)、循环(for、while、do-while)等。在习题中,这些基本概念会通过各种实例进行检验,例如,如何正确声明和初始化变量,...

    C语言数据结构与算法WORD版.rar

    以上就是《C语言数据结构与算法》的主题概览,学习这本书将帮助你深入理解计算机内部运作,提升编程技能,为后续的软件开发和系统级编程打下坚实的基础。通过实践和练习,你将能够运用这些知识解决实际问题,编写出...

Global site tag (gtag.js) - Google Analytics