C字节
来源:互联网 发布:淘宝好评如何删除评价 编辑:程序博客网 时间:2024/05/16 07:29
以前练习C的时候,对各种数据类型所占的字节数总是云里雾里,
今天索性锁自己搜了些资料,自己试了试,把索了解的记下来,也便温故而知新。
首先讲讲编译环境
老师推荐的linux平台,自己在虚拟机中安装了debian7 32位,linux下的debian7就如同windows下的win7,同样属于操作系统。
在linux下常用的编译器是gcc编译器,自己安装和配置过虚拟机的人就知道,虚拟机配置完成后需要安装软件,其中在命令行输入
apt-get isntall gcc 就是在安装gcc编译器。因为我们是用putty来远程访问linux服务器,所以有的同学就认为putty是编译器,实际上
putty只是一个远程登录工具。
纠正了误区之后,再来看看常用的编译器,今天主要下载和使用了vc 6.0(64位操作系统可运行)还有tc (只适用32位)。
不同的编译器之间在数据存储时是有区别的。
#include<stdio.h>
#include<string.h>
int main()
{
int k=1;
char kk='d';
float kkk=27.8;
char str1[]="123";
char str2[]="abc";
char str3[]="你好";
printf("%d\n",sizeof(k));
printf("%d\n",sizeof(kk));
printf("%d\n",sizeof(kkk));
printf("%d\n",sizeof(str1));
printf("%d\n",sizeof(str2));
printf("%d\n",sizeof(str3));
printf("%d\n",strlen(str1));
printf("%d\n",strlen(str2));
printf("%d\n",strlen(str3));
return 0;
}
在gcc上的运行结果是 4 1 4 4 4 5 3 3 4
在vc上的运行结果 是 4 1 4 4 4 5 3 3 4
在tc上的运行结果 是 2 1 4 4 4 5 3 3 4
上面可以看到的是,
有符号整形在gcc编译器以及vc编译器中存储的是4个字节、
在tc中是两个字节、一个char是1个字节、float是4个字节、
汉字需要两个字节来存储,所以这样的语句是错误的,char ch='你';
srlen()函数的返回值是字符串中字符所占的字节数(除了结束符之外的字符),是字符串中的函数。
字符串中字母和数字是占一个字节、汉字是占两个字节。
c语言中的字符串char str[30]="yu";sizeof(str)的返回值是30,依次的将str[0]、str[1]分别存放的是‘y'和’u'后面
跟上的依次都是‘0’来填满它申请的整个空间,strlen(str)返回值只是没有被结束符占据的字符的个数。
以前总爱将sizeof和strlen两个函数混在一起,其实strlen函数只是对于字符串有效的,两者的区别也是挺大的。
后来有人问我vs2010是不是也属于编译器,在网上查找了一下,vs2010属于开发环境,
是目前最流行的windows应用平台的开发环境,之前在安装时,他有安装的选项,
可一般选择c++或者mfc等来安装,发现每一种安装方式他都是带有自己的编译器的。
理解可能还是有不到位的地方,好记性不如烂笔头,静下心来学。
- C字节
- C/C++字节对齐
- C/C++字节对齐
- c/c++字节对齐
- C/C++字节对齐
- C--判断字节续
- c/c++字节对齐
- C语言字节对齐
- C语言字节对齐
- C/C++字节对齐
- c语言字节对齐
- C语言字节对齐
- C语言字节对齐
- C语言字节对齐
- C语言字节对齐
- C语言字节对齐
- C语言字节对齐
- C语言字节对齐
- 嵌入式 C 面试题1
- #parama para
- hdu 5071
- 多态中函数、成员、静态函数的特点
- C#——listbox的体验----显示数字
- C字节
- Android--高效地加载大图片
- java学习3、初学多线程、多进程
- 桶排序
- poj_3667线段树区间合并
- 三角形
- 2014-11.2
- Android项目-高考作文项目架构(二)
- 《C++编程思想》中的CStash第一个程序的欣赏