格式化说明符定义、转义字符、枚举、结构体、typedef
1、格式化说明符定义:
%i,%d:输出十进制整型数
%6d:输出十进制整型数,至少6个字符宽
%li,%ld:输出长整数
%u:输出无符号整数
%lu:输出无符号长整数(相当于:unsigned long int)
%f,%g:输出浮点类型数
%.2f:输出浮点类型数,小数点后有两位小数
%lf:输出双精度浮点数
%o:输出八进制数
%e:以科学计数法,输出浮点数
%c:输出字符
%s:输出字符串
%p,%x:输出变量的内存地址和十六进制数
2、转义字符:
\a 响铃符
\b 回退符
\f 换页符
\n 换行符
\r 回车符
\t 横向制表符
\v 纵向制表符
\\ 反斜杠
\? 问号
\’ 单引号
\” 双引号
\ooo 八进制数
\xhh 十六进制数
3、
#include<>:告诉编译器去系统默认的路径寻找相关的文件。
#include"":告诉编译器先去源程序所在目录下寻找,如果没有就去系统默认路径寻找。
任何变量的声明都可以使用const限定符限定;该限定符指定变量的值不能被修改;对数组而言,const限定符指定数组所有元素的值都不能被修改。const限定符也可配合数组参数使用,它表明函数不能修改数组元素的值;如果试图修改const限定符限定的值,其结果取决于具体的实现。
4、枚举的概念:
枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。
// 定义一种枚举类型
enum Season {spring, summer, autumn, winter};
// 定义一个枚举变量s
enum Season s = winter;
// 定义枚举类型的同时定义一个枚举变量s
enum Season {spring, summer, autumn, winter} s = spring;
或者: enum {spring = 3, summer, autumn, winter} s = winter;//固定值默认是从0开始排序的。
5、结构体:
在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可以是浮点型。为此,C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它允许内部的元素是不同类型的。struct是关键字,是结构体类型的标志。结构体的一般定义形式为:
struct 结构体名{
类型名1 成员名1;
类型名2 成员名2;
……
类型名n 成员名n;
};
先定义结构体类型,再定义变量:
struct Student {
char *name;
int age;
};
struct Student stu; //定义了一个结构体变量,变量名为stu。struct和Student是连着使用的。
或者:
struct Student {
char *name;
int age;
} stu; //其中结构体类型名Student可以省略。
结构体内可以包含别的结构体。
6、typedef作用简介:
我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。如:
typedef int Integer; typedef unsigned int UInterger; typedef float Float;
也可以在别名的基础上再起一个别名:
typedef int Integer; typedef Integer MyInteger; typedef char *String; //给指针类型char *起别名为String。
使用typedef给结构体起别名:
struct MyPoint {
float x;
float y;
};
typedef struct MyPoint Point; // 起别名
int main(int argc, const char * argv[]) {
Point p; // 定义结构体变量
p.x = 10.0f;
p.y = 20.0f;
return ;
}
// 定义一个结构体,顺便起别名
typedef struct MyPoint {
float x;
float y;
} Point; //Point为别名,结构体名称MyPoint可省略。
格式化说明符定义、转义字符、枚举、结构体、typedef的更多相关文章
- 我学C的那些年[ch02]:宏,结构体,typedef
c语言的编译过程: 预处理 编译 汇编 链接 而预处理中有三种情况: 文件包含( #include ) 条件编译(#if,#ifndef,#endif) 宏定义( #define ) 宏就是预处理中的 ...
- C#学习笔记_12_枚举&结构体
12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...
- 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- 结构体 typedef关键字
1 结构体 #include <iostream> #include <cstring> using namespace std; void printBook( struct ...
- C语言学习笔记--枚举&结构体
枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...
- 结构体 + typedef
简单结构体 struct student{ char name[20]; //可以用scanf或者直接赋值 *如果用char *name 在用scanf时没有内存接收 long id; int ...
- Python 定义及使用结构体
Python中没有专门定义结构体的方法,但可以使用class标记定义类来代替结构体,其成员可以在构造函数__init__中定义,具体方法如下. class seqNode: def __init__( ...
- Linux中的两个经典宏定义:获取结构体成员地址,根据成员地址获得结构体地址;Linux中双向链表的经典实现。
倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offse ...
随机推荐
- 关于类型“LinkButton”的控件“xxx”必须放在具有 runat=server 的窗体标记内问题的解决方案
1.首先确认LinkButton控件包含在Form中,检查该Form有无runat标记,如果有,排除Form原因,请继续看. 2.如果看到这里,估计你是在做Excel导出功能.在后台代码中重写Veri ...
- Maven搭建SpringMVC+Hibernate项目详解
前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这 ...
- 【Cocos2d入门教程五】Cocos2d-x动作篇
动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作.动作作用于Node,包括继承于之下的Layer.Sprite.因此每个动作 都需要由Node对象或者其继承者执行.动作类(Acti ...
- android组件间共享数据的常用方法
使用Intent在激活组件的时候携带数据,以进行数据的传递 使用广播进行组件间数据的伟递 使用外部存储(sharedPreference,文件,数据库,网络)进行组件间数据共享 使用Static静态成 ...
- struts2-权限拦截器、日志拦截器、execAndWait(进度条)拦截器配置
1.权限拦截器 package login; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.Serv ...
- JavaBean在JSP中显示时间
创建DateTimeBean的类,将其放置于org.caiduping.bean的包中,实现时间,星期的封装. package org.caiduping.bean; import java.text ...
- IOS 下拉菜单
由于之前曾经用到过下拉菜单,所以现在花一些时间回过头来细细整理了一下,逐步完善这个下拉菜单,并提供一些比较基本的功能,以便日后如果有需要的话可以进行复用,并提供给需要的人参考.下拉菜单同样分为数据源和 ...
- jquery学习全面总结
本文仅针对jquery的部分知识点做总结,更为全面的可以去官网看中文文档.可以更为详细的了解jquery及其特性. window.onload 和$(document).ready() 我 windo ...
- C#中Predicate<T>与Func<T, bool>泛型委托的用法实例
本文以实例形式分析了C#中Predicate<T>与Func<T, bool>泛型委托的用法,分享给大家供大家参考之用.具体如下: 先来看看下面的例子: 1 2 3 4 5 6 ...
- JAVA静态和非静态内部类
JAVA静态和非静态内部类 一直对java的静态和非静态内部类的东东理解不清楚,今天测试了一下,下面把测试结果记录一下,加深印象.用于以后查找. 直接上代码. package com.test.xml ...