《C语言数据类型、存储类型》由会员分享,可在线阅读,更多相关《C语言数据类型、存储类型(5页珍藏版)》请在人人文库网上搜索。
1、一、数据类型基本类型:int、char、int、float、double构造类型:数组(一维数组、二维数组、指针数组、函数指针数组、结构体数组)、结构体、共用体指针:一维指针、二维指针、数组指针、函数指针、结构体指针空类型:void,该类型也叫缺省型,用于描述值为空集,主要用于说明不返回值的函数或指向任一类型的指针等1、32位计算机,各种数据类型所占字节数是:char = 1;short = 2;int = 4;long = 4;float = 4;double = 8(实型数据的存储方式不同于其他基本数据类型)2、bool类型bool类型数据的值,是真或者非真,-即:0/1(非0即为真)定义。
2、时需加上:#include用的时候不需要专门声明。3、char型数据字符型数据,就是占用1个字节,8位,赋值范围要注意unsigned char(无符号)signed char (有符号)如果给char型数据赋值超过范围,则会溢出。溢出原则,“保留低位,舍弃高位”4、字符常量char a = a和char a = 97等价,字符常量a的ASCII码是975、字符串常量定义:用双引号括起来的字符,就是字符串常量。char *p = “hello”;“helllo”“你好吗,世界!”每个字符串常量后面都会有一个“*0”0用来表示字符串结束6、define与typedef(注意两者格式的区别)typ。
3、edef是关键字,为已有类型取别名(如typedef unsigned int unit)define是宏定义,仅仅进行简单的文本替换(#define TYPE 100)举例:#define unit_p int*unit_p a,b表示的是int *a,b;(b为int型)typedef int * unit_punit_p a,b;表示的是int *a;int *b;#include#defineN3.0e-23#defineM950intmain(intargc,constchar*argv)doublea;scanf(%lf,&a);printf(%.2en,a*M/N);return。
4、0;7、sizeof(关键字)这个是计算数据占用字节数的运算符,只针对数据类型,不针对变量。 返回值:是括号内数据占用的字节数。比如:int a = 5;则sizeof(a)和sizeof(int) = 4;sizeof(short int)=2;32位系统中,指针是占4个字节利用指针判断所使用系统是多少位的系统int *p = NULL;printf(%dn,sizeof(p);32位系统中,指针是占4个字节;64位系统中,指针是占8个字节8、带参宏定义define对于带参宏定义不仅应在参数两侧加括号,还应在整个符号串外加括号,才能保证大部分情况下不出错。而有些时候就算已经这样做了,还是不能。
5、得到我们想要的结果。#include #define SQ(y) (y)*(y)int main()int i = 1;while(i int SQ(int y)return (y * y);int main()int i = 1;while(i int s;/全局变量未初始化,会被分配到BSS段,该段在程序加载初期会被自动清零。所以没初始化前,它的默认值是0。int sd = 1024;/如果初始化了全局变量,那么它会被分配到data段,data段的数据会被原样保存到磁盘中。/全局变量在程序加载时就被初始化/全局变量初始化后在内存中分配了固定的地址;int main()int a = 1;/。
6、局部变量在程序调用的时候才会被初始化;/局部变量调用时,被分配地址是随着每次调用、释放变化的。return (0);3、变量作用域局部变量的名称作用域在一个花括号之间作用域小的名称,将覆盖掉作用域大的名称一个工程里不能有两个重名的全局变量4、static静态存储类型用static声明一个静态变量,那么这个静态变量和全局变量同等对待,放到静态区,在程序被加载时被初始化,之后不再执行初始化;静态局部变量和全局变量,只是作用域和名称不一样,其它的属性都一样(参照上一文档的图)5、用static声明一个全局变量的用法extern声明引用一个外部变量。比如:两个程序文件,a文件可以通过extern声明引。
7、用b文件里面的变量,在编译的时候要将两个程序文件同时编译。static int a=0;用static修饰一个全局变量,那么这个全局变量的作用域仅限于本文件;修饰一个函数的话,效果相同。总结:用static修饰一个局部变量,那么这个局部变量的作用相当于全局变量;用static修饰一个全局变量,那么这个全局变量仅限于它所在文件使用,而不能通过extern声明而被另外的文件使用;用static修饰一个函数,那么这个函数的作用域仅限于它所在的文件,而不能通过extern声明而被另外的文件使用;extern的作用:可以声明函数,也可以声明变量。它的作用是,通过extern声明后,即使本文件中没有该变量和文件,那么也可以通过声明从别的文件中进行引用或者调用。6、大端序和小端序小端序:低地址存低字节;大端序:低地址存高字节int a = 0X(78为低字节)char *q = (char *)&a;q相较于q+1为低地址可以打印比较q和q+1的值,判断所使用系统是大端序还是小端序。