`

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语言中常用数据类型内存存储形式

    通过这几个例子应该能够很好的理解各种类型在计算机内存中是如何存储的。

    数据结构习题解答(C语言版)

    1.1 简述下列术语:数据、数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 答:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素...

    C语言基础知识:数据类型和变量.docx

    在学习C语言编程时,了解数据类型和变量是一个重要的起点。本文将介绍C语言中的数据类型和变量,并提供相关的代码示例,帮助读者深入理解这些概念

    C51数据类型 单片机C语言知识点

    每写一个程序,总离不开数据的应用,在学习 c51 语言的过程中掌握理解数据类型也是 很关键的

    C语言,查看内存计数格式

    帮助学生理解C语言数据类型计数格式

    《C语言学习辅导》 数据类型1

    第二章 数据类型实验本章学习目标:掌握常量和变量的概念理解并掌握各种类型的数据在内存中的存储空间理解并掌握各种类型的数据在内存中的存放形式,尤其注意有符号数和无

    C语言编写简单程序

    1.理解C语言的数据类型; 2.掌握C语言常量、变量概念与命名方法; 3.掌握C语言基本数据类型、运算符与表达式;

    C语言常见几中图形打印代码

    现已经历过几个步骤:从简单的了解操作平台Xcode开始,到熟悉基本的数据类型:整型:int、long、short;字符型:char;实型:float、double。然后接触到编程语言的分支结构分类——顺序、分支、循环。其中循环是重点...

    C语言视频安卓版

    1、C语言介绍、数据类型、控制语句、循环、数组等基础 2、C语言各种逻辑算法练习题 3、C语言函数、指针 4、C语言结构、文件等 无论您是在校大学生,还是职业学员,或者其他开发人员,本书都志在全面提高您的C语言...

    c语言ADT集合

    c语言ADT抽象数据类型版创建集合This assignment is about Abstract Data Types (ADTs). One such ADT, to implement a simple (resizeable) 1D Array, is provided and then you are expected to create one, in a ...

    C语言基础篇:变量和数据类型

    理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 熟练使用 scanf() 和 printf() 函数 熟练使用 getchar() 和 putchar() 函数

    C语言:变量深度认识与理解

    一个碗 都是容器 容器的大小决定了变量所能容纳的大小 所以在写程序过程中 要认识变量大小合理运用分配变量大小来储存我们所需要的数据 只要很好的理解变量 以后才能对以后学习指针打下基础更好的运用指针C语言中 ...

    《C语言学习辅导》 数据类型、运算符和表达式1

    第二章 数据类型、运算符和表达式实验本章学习目标:掌握常量和变量的概念理解并掌握各种类型的数据在内存中的存储空间理解并掌握各种类型的数据在内存中的存放形式,尤其

    学号XXX姓名C语言实验1数据类型1

    (2)熟练掌握算术表达式的求值规则 (3)熟练使用赋值表达式 (4)理解自加、自减运算符和逗号运算符

    C语言学习笔记

    C语言简单的基于值类型的数据类型体系(引用靠指针,指针本身也是值类型),保持了和硬件底层的一致性(即内存、缓存、寄存器只能保存值),不会出现其他语言比如C#那样既有值又有引用反而对理解底层实现制造了障碍...

    数据结构课程设计----哈夫曼树(c语言)

    1. 采用类C语言定义相关的数据类型 3 2. 各模块的伪码算法 7 3. 函数的调用关系图 13 4. 调试分析 13 5. 测试结果 14 6. 源程序(带注释) 14 总 结 20 参考文献 20 附件Ⅰ 部分源程序代码 21 摘 要 哈夫曼编译码...

    C语言程序设计阶段测试

    C语言概述、C语言的第一个程序—Hello World、C语言开发软件与应用、输入语句和输出语句、变量、常量、数据类型及其转换、数学计算、赋值运算、自增自减运算、逗号运算、关系运算、逻辑运算、优先级、运算值等C语言...

    程序设计入门—C语言(完)-浙江大学-翁恺 视频.txt

    2 数据类型 3 表达式 4 在线评判系统 03 判断与循环 课时 1 判断 2 循环 04 进一步的判断与循环 课时 1 逻辑类型和运算 2 级联和嵌套的判断 3 多路分支 4 循环的例子 5 判断和循环常见的错误 05 循环控制 课时 1 ...

    C语言知识点详细笔记教程

    C语言基础:数据类型、变量、运算符和表达式。 控制结构:条件语句、循环、跳转语句。 函数:定义、参数传递、递归。 数组和字符串:初始化、遍历、字符串操作函数。 指针:基本概念、指针运算、指针与数组的关系。 ...

    C语言学习的一些常见资源,希望能对你有所帮助

    教程类:例如《C语言程序设计教程》、《C语言入门经典教程》等,这些书籍通常会详细讲解C语言的基本语法、数据类型、运算符和控制流程等基础知识,同时也会提供一些相应的练习题和案例,帮助读者加深对C语言的理解和...

Global site tag (gtag.js) - Google Analytics