黑马程序员_C_结构体与预处理
来源:互联网 发布:室内温度检测软件 编辑:程序博客网 时间:2024/05/21 07:05
结构体与预处理
1. 结构体的基本概念
#include <stdio.h>
int main(int argc,constchar * argv[])
{
//构造类型:由基本数据类型组成类型,但是构造类型里成员也可以使用构造类型
int num[4] = {1,2,3,4};
//Person age int height float name char *
// 变量类型变量名称
int a =10;
// 结构体类型结构体变量名
// 定义结构体的格式
/*
struct结构体类型名称{
// 结构体成员
数据类型名称成员名称;//注意这个地方是分号不是一个逗号
数据类型名称1成员名称1;
数据类型名称2成员名称2;
};
*/
// 定义结构体类型时候系统不会为该结构类型分配存储空间
struct Person{
int age;
float height;
char *name;
};
//初始化结构体第一种方式先定义结构体变量然后再初始化
// 通过结构体类型定义结构体变量系统会为这个结构体变量分配存储空间
structPerson p;
// 结构体第一次赋值称为结构体的初始化
p.age =30;
p.height =1.73f;
p.name ="zbz";
// printf("age = %d,height = %.2f,name =%s\n",p.age,p.height,p.name);
int nums1[3] = {1,2,3};
// 结构体初始化的第二种方式
structPerson p1 = {24,1.8f,"xtf"};
// printf("age = %d,height = %.2f,name =%s\n",p1.age,p1.height,p1.name);
int nums[3] = {[1] =10,[2]=12 };
structPerson p2 = {.height = 2.2f,.name ="ym",.age =36 };
printf("age = %d,height =%.2f,name = %s\n",p2.age,p2.height,p2.name);
return0;
}
2. 结构体的多种定义形式
/*
结构体的第一种定义方式先定义结构体类型再定义结构体变量
struct Person{
int age;
char* name;
};
struct Person p;
*/
// 结构体的第二种定义方式,定义结构体的同时,定义变量
/*
// 结构体类型不可以重复定义
struct Person{
int age;
char* name;
} pp,p2,p3 ;
// 只有定义结构体变量的时候才可以使用一次性整体赋值的方式
pp.age = 20;
pp.name = "zsf";
struct Person{
int age;
char* name;
} p4;
*/
// 第三种方式:定义匿名的结构体类型,同时定义结构体变量
// 缺点:结构类型不能重复使用
2.条件编译
//条件编译的注意点
/*
#if条件表达式
语句;
。。。
#elif条件表达式1
语句;
#else
语句
#endif
*/
/*
条件编译的作用:只有满足条件的代码才会被编译
*/
/*
1、条件表达式中只能使用宏或者常量
2、提交编译必须使用#endif结束
*/
//#define A 10
4.带参的宏定义
//带参数的宏定义格式#define宏名(参数列表)参数表达式
//注意点:1、宏名与()之间不可以有空格
// 2、参数列表中不可以有数据类型
// 3、一般情况下参数表达式中的所有成员及结果都需要加上()
//带参数的宏定义的作用:简单使用参数表达式替换掉出现宏调用的地方,仅仅是做一个替换操作
//当时运算比较简单时候使用不带参数的宏定义,若运算比较复杂还是使用函数
//带参数宏定义效率更高,因为带参数的宏定义不涉及函数调用,存储空间的分配与释放
#define SUM(x,y) (x + y)
#define PF(x,y) ((x) *(y))
int main(int argc,constchar * argv[])
{
// int result = sum(2,4);
// int result = SUM(2, 4)/ 2;
int result =PF(2 +2,2 +10)/PF(2,2);//((2 + 2) * (2 +10))/((2)*(2))
- 黑马程序员_C_结构体与预处理
- 黑马程序员_C_函数与指针
- 黑马程序员_C_循环
- 黑马程序员_C_递归,作用域,数组
- 黑马程序员_C_运算符,分支
- 黑马程序员--c语言:结构体、枚举、预处理指令、typedef、static与extern、递归思想
- 预处理与结构体
- 黑马程序员-结构体与枚举
- 黑马程序员——C语言---结构体、枚举、预处理指令
- 黑马程序员——C复杂数据类型--变量、结构体、预处理
- 预处理与结构体简述
- 黑马程序员-结构体
- 黑马程序员-预处理
- 黑马程序员-预处理指令
- 黑马程序员....................预处理指令
- 黑马程序员——C语言热身——预处理指令、变量类型、static和extern、结构体、枚举
- 程序员面试笔试宝典——读书笔记3、预处理、结构体与类、位操作
- 黑马程序员_C语言_结构体与枚举
- 我的mac OSX bash_profile文件
- 黑马程序员_C_递归,作用域,数组
- 黑马程序员_C_运算符,分支
- 黑马程序员_C_循环
- 黑马程序员_C_函数与指针
- 黑马程序员_C_结构体与预处理
- cocos2d-x中层和菜单的触摸控制
- jquerty.validate整合表单验证
- js for in
- X264编码h264
- 【leetcode】Longest Common Prefix
- java50题----33杨辉三角
- 写在开始
- PAT-B 1017. A除以B