黑马程序员——C语言——数据类型的一些补充与小结
2015-04-11 21:19
435 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
根据变量的作用域,可以分为:
1.局部变量:
1>.定义:在函数(代码块)内部定义的变量,包括函数的形参
2>.作用域:从定义变量的那一行开始,一直到代码块结束
3>.生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被收回
4>.没有固定的初始值
2.全局变量
1>.定义:在函数外面定义的变量
2>.作用域:从定义变量的那一行开始,一直到文件结尾(能被后面的所有函数共享)
3>.生命周期:程序一启动就会分配存储空间,程序退出时才会被销毁
4>.默认的初始值就是0
2.结构体
1>.数组:只能由多个相同类型的数据构成
2>.结构体:可以由多个不同类型的数据构成
{
//1.义结构体类型
struct person
{//里面的三个变量,可以称为是结构体的成员或者属性
int age ;
double height;
char *name;
}
{
//定义结构体类型(并不会分配存储空间)
struct date
{
int year;
int month;
int day;
} ;
//定义结构体变量 (真正分配存储空间) 2002-09-10
struct date d1={ 2011,9,10};
int s=sizeof(d1) ;
printf(“%d\n”,s);
return 0;
}
{
//定义结构体类型(并不会分配存储空间)
struct date
{
int year;
int month;
int day;
} ;
//定义结构体变量 (真正分配存储空间) 2002-09-10
struct date d1={ 2011,9,10};
/* printf (“%p - %p - %p\n”,&d1.year,&d1.month,&d1.day);
int s=sizeof(d1) ;
printf(“%d\n”,s); */
return 0;
}
补齐算法(对齐算法)
结构体所占用的存储空间必须是最大成员字节数的倍数
1.定义结构体变量的3种方式
1>.先定义类型,在定义变量(分开定义)
struct student{
int a;
};
2>.定义类型的同时定义变量
struct student
{
int age ;
} stu;
struct student stu2;
3>.定义类型的同时定义变量(忽略了类型的名称)
struct student
{
int age ;
} stu;
*/
int main ()
{ //定义结构体变量的第3种方式
struct
{
int age;
char *name;
}stu;
struct {
int age;
char *name;
}stu 2;
*/
/* //定义变量的第一种方式
//1.类型
struct student
{
int age;
double height;
char *name;
} ;
}
1.指向结构体的指针的定义
struct studrent *p;
2.利用指针访问结构体的成员
1>.(*p).成员的名称
2>.p->成员名称
*/
int main ()
{
struct student
{
int no;
int age;
};
//结构体变量
struct student stu ={1,20};
}
{
struct date
{
int year;
int month;
int day;
} ;
}
枚举
#include
int main ()
{
enum sex{man,woman,unknow};
//0男 1女 -1不详
//int sex =-1;
// enum sex s =unknow;
}
一.基本数据类型
1.int
1>.long int .long :8个字节 %ld
2>.short int. Short :2个字节 %d,%i
3>.unsigned int . Unsigned : 4个字节 %zd
4>.signed int . Signed . Int 4个字节 %d,%i
2.float,double
1>.float:4个字节 %f
2>double:8个字节 % f
3.Char
1>.1个字节 %c,%d
2>.char 类型保存在内存中的是它的ASCII值’A’–>65
二.构造类型
1.数组
1>.只能由同一种类型的数据组成
2>.定义:数据类型 数组名[元素的个数];
2.结构体
1>.可以由不同的类型数据组成
2>先定义类型,子啊利用类型定义变量
三.指针类型
1.变量的定义
Int * p;
2.间接操作变量的值
Int a=10;
P=&a;
*p=20;
四.枚举类型
使用场合:当一个变量只允许有几个固定取值时,用枚举
根据变量的作用域,可以分为:
1.局部变量:
1>.定义:在函数(代码块)内部定义的变量,包括函数的形参
2>.作用域:从定义变量的那一行开始,一直到代码块结束
3>.生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被收回
4>.没有固定的初始值
2.全局变量
1>.定义:在函数外面定义的变量
2>.作用域:从定义变量的那一行开始,一直到文件结尾(能被后面的所有函数共享)
3>.生命周期:程序一启动就会分配存储空间,程序退出时才会被销毁
4>.默认的初始值就是0
2.结构体
1>.数组:只能由多个相同类型的数据构成
2>.结构体:可以由多个不同类型的数据构成
includ
int main (){
//1.义结构体类型
struct person
{//里面的三个变量,可以称为是结构体的成员或者属性
int age ;
double height;
char *name;
}; //2.根据结构体类型,定义结构体变量 struct person p = { 20,1.55,"jack" }; p.age=30; p.name="rose"; printf("age=%d,name=%s,height=%f\n",p.age,p.name,p.height); struct person p2={30,1.67,"jack"}; //或者 p2.age=25; //结构体类型 结构体变量名; return 0;
}
include
int main (){
//定义结构体类型(并不会分配存储空间)
struct date
{
int year;
int month;
int day;
} ;
//定义结构体变量 (真正分配存储空间) 2002-09-10
struct date d1={ 2011,9,10};
int s=sizeof(d1) ;
printf(“%d\n”,s);
return 0;
}
include
int main (){
//定义结构体类型(并不会分配存储空间)
struct date
{
int year;
int month;
int day;
} ;
//定义结构体变量 (真正分配存储空间) 2002-09-10
struct date d1={ 2011,9,10};
struct date d2={2012,8,9 }; //会将d1所有成员的值对应的赋值给d2的所有成员 d2=d1; d2.year=2010; printf ("%d - %d - %d\n",d1.year,d1.month,d1.day); printf ("%d - %d - %d\n",d2.year,d2.month,d2.day);
/* printf (“%p - %p - %p\n”,&d1.year,&d1.month,&d1.day);
int s=sizeof(d1) ;
printf(“%d\n”,s); */
return 0;
}
补齐算法(对齐算法)
结构体所占用的存储空间必须是最大成员字节数的倍数
include
/*1.定义结构体变量的3种方式
1>.先定义类型,在定义变量(分开定义)
struct student{
int a;
};
2>.定义类型的同时定义变量
struct student
{
int age ;
} stu;
struct student stu2;
3>.定义类型的同时定义变量(忽略了类型的名称)
struct student
{
int age ;
} stu;
*/
int main ()
{ //定义结构体变量的第3种方式
struct
{
int age;
char *name;
}stu;
struct {
int age;
char *name;
}stu 2;
//结构体类型型不能重复定义 /* 错误写法:结构体类型重复定义 struct student { int age; double height; char *name; } stu; struct student { int age; double height; char *name; } stu2;
*/
/* 这句代码做了两件事情 1.定义结构体类型 2.利用新定义好的类型来定义结构体变量 */ //定义变量的第2中方式:定义类型的同时定义变量 struct student { int age; double height; char *name; } stu; struct student stu2;
/* //定义变量的第一种方式
//1.类型
struct student
{
int age;
double height;
char *name;
} ;
//2.变量 struct student stu ={20,1.78,"jack" }; */ return 0;
}
include
/*1.指向结构体的指针的定义
struct studrent *p;
2.利用指针访问结构体的成员
1>.(*p).成员的名称
2>.p->成员名称
*/
int main ()
{
struct student
{
int no;
int age;
};
//结构体变量
struct student stu ={1,20};
//指针变量p将来指向struct student类型的数据 struct student *p; //指针变量P指向了stu变量 p=&stu; p->age=30; //第一种方式 printf("age=%d,no=%d\n",stu.age,stu.no); //第二种方式 printf("age=%d,no=%d\n",(*p).age,(*p).no); (*p).age; //第三种方式 printf("age=%d,no=%d\n",p->age,p->no); return 0;
}
include
int main (){
struct date
{
int year;
int month;
int day;
} ;
//类型 struct student { int no;//学号 struct date birthday;//生日 struct date ruxuedate;//入学日期 //这种写法是错误的 //struct student stu;自己不能包括自己 }; struct student stu={1,{2000,9,10},{2012,9,10}}; printf("year=%d,month=%d,day=%d\n",stu.birthday.year,stu.birthday.month,stu.birthday.day); return 0;
}
枚举
#include
int main ()
{
enum sex{man,woman,unknow};
//0男 1女 -1不详
//int sex =-1;
// enum sex s =unknow;
//1.定义枚举类型 enum season { spring=1, summer, autumn, winter } ; //2.定义枚举变量 enum season s=winter; printf("%d",s) ; return 0;
}
一.基本数据类型
1.int
1>.long int .long :8个字节 %ld
2>.short int. Short :2个字节 %d,%i
3>.unsigned int . Unsigned : 4个字节 %zd
4>.signed int . Signed . Int 4个字节 %d,%i
2.float,double
1>.float:4个字节 %f
2>double:8个字节 % f
3.Char
1>.1个字节 %c,%d
2>.char 类型保存在内存中的是它的ASCII值’A’–>65
二.构造类型
1.数组
1>.只能由同一种类型的数据组成
2>.定义:数据类型 数组名[元素的个数];
2.结构体
1>.可以由不同的类型数据组成
2>先定义类型,子啊利用类型定义变量
三.指针类型
1.变量的定义
Int * p;
2.间接操作变量的值
Int a=10;
P=&a;
*p=20;
四.枚举类型
使用场合:当一个变量只允许有几个固定取值时,用枚举
相关文章推荐
- 黑马程序员——C语言小结------其他数据类型
- 黑马程序员——C语言小结------宏定义以及基本数据类型总结
- 黑马程序员—C语言—其他数据类型及小结
- 黑马程序员——C语言中指针与其他数据类型的结合使用
- 黑马程序员——C语言------关键字、标识符、注释、数据类型
- 黑马程序员----C语言复杂数据类型之结构体与枚举篇
- 黑马程序员——c语言的复杂数据类型:数组和指针
- 【黑马程序员】C语言学习笔记之基本数据类型(六)
- 黑马程序员-c语言学习之数据类型的整理
- 黑马程序员——c语言复杂数据类型:结构体和枚举,typedef的使用
- 黑马程序员———C语言回顾之复杂数据类型
- 黑马程序员-IOS学习笔记-C语言基础其他数据类型及总结
- 黑马程序员_C语言_数据类型总结
- C语言中关于指针的数据类型和指针运算的小结
- 【黑马程序员】iOS学习之路——C语言之数据类型、常量、变量
- <关于数据类型的一些看法---C语言版本>
- 黑马程序员---C语言数据类型总结
- c语言中的数据类型(小结3)
- 黑马程序员----C语言复杂数据类型之数组(字符串)与指针篇
- 黑马程序员---【C语言】02基本数据类型