4c语言数据类型和变量
2019-11-24 21:11
1461 查看
2.1数据类型知多少
对于类型所占的内存是多大,可以使用sizeof()测试。
空类型:普通变量没有这个类型,指针类型有这个类型
数据类型的本质是:固定内存大小的别名。
2.2基本类型
int main() { int a;//告诉编译器分配4个字节 int b[10];//告诉编译器分配4*10个字节 //类型的本质是固定内存块大小的别名 //同过sizeof()测试具体分配多大的内存空间 printf("sizeof(a)=%d sizeof(b)=%d\n",sizeof(a),sizeof(b)); return 0; }
运行结果:
//打印数组b的地址 printf("b=%d &b=%d",&b,b);
运行结果:
//数组加1 printf("b=%d &b=%d\n",b+1,&b+1);
地址一样,为什么+1后就不一样了那?
//是数组首元素地址,一个元素4个字节,加一就是在原地址上加4个字节 //&b是整个数组的首地址,一个数组是4*40=40个字节,加1就是加了40 //测一下指针变量的内存大小是多少 //指针长度是:32位系统,指针长度都是4 // 64位系统,指针长度都是8 char *p; printf("sizeof(p)=%d\n",sizeof (p)); double ***q; printf("sizeof(q)=%d\n",sizeof (q));
运行结果:
2.3数据类型的别名:typedef
typedef unsigned int u32; //第一种结构体 struct std1 { int a; int b; }; //第二种别名结构体 typedef struct std2 { int c; int d; }std2; int main() { u32 t;//给unsigned int 类型取别名 t=33; //typedef 通常与结构体一起使用 //使用第一种结构体 struct std1 std={1,2}; std.a=3; //使用第二种别名结构体 std2 std3={3,4}; std3.c=2; return 0; }
2.4void类型
先看一下void怎么用
//* void 无类型 // * 1函数参数为空,定义函数时,可以用void修饰 // * 例如:int fun(void); // * 2函数没有返回值:void fun(void); // * 3不能定义void类型的普通变量:void a;//error无法确定类型,不同类型分配内存不一样 // * 4可以定义void *变量:void *p;//ok,32位分配4个字节,64位分配8个字节,可以固定 // * 5数据类型本质就是固定内存块大小 // * 6void *p万能指针,函数返回值,函数参数 int main() { // c语言规定:只有相同类型的指针才能相互赋值,如是不同需要类型强制转换 char *p=(char *)malloc(sizeof(char)*10); return 0; }
void的具体用法我们会在后面慢慢体会它的好处。
2.5变量
C语言规则:变量必须先定义才能使用。
//变量本质是一段连续的内存空间别名 //变量相当如门牌号,而内存就相当于房间 //可以通过门牌号找到房间 int main() { //直接赋值 int a=20; int *p; printf("a=%d\n",a); //间接赋值 //指针指向谁,就把谁的地址赋值给指针,指针就指向其内存 printf("&a=%d\n",&a); p=&a; printf("p=%d\n",p); *p=10; printf("a=%d\n",a); printf("*p=%d\n",*p); return 0; }
运行结果:
相关文章推荐
- C语言基础教程(二)数据类型、变量和运算符
- C语言数据类型大小和结构体中变量…
- OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)
- C语言基础之变量的命名规则、定义常量、C的数据类型
- OpenGL ES着色器语言之变量和数据类型和着色器流程
- c语言基础-变量、基础数据类型、关系运算符、顺序/条件/循环
- OpenGL ES着色器语言之变量和数据类型
- OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)
- C语言数据类型大小和结构体中变量…
- OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围
- iOS开发环境C语言基础 变量 、 数据类型和变量赋值 、 其他 、 运算符
- pyhton语言基础一丨数据类型和变量
- c语言数据类型和变量
- C程序设计语言- 类型、运算符与表达式-2.1----变量名、数据类型及长度、常量、声明、算数运算符、关系运算符与逻辑预算符
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(2)-- 变量和常用数据类型
- Java初学者的精神食粮——语言基础之标识符、数据类型、变量和常量
- Python语言基础(二)_数据类型和变量
- 黑马程序员——C语言数据类型,变量的内存分析,流程控制
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
- OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)