一typedef
1.1概述
:C 语言提供了 typedef 关键字,可以使用它来为类型取一个新的名字
示例:我们可以看到这里 我们将unsigned char 新起一个名字为 BYTE 后面我们定义此类型的变量的时候就可以使用BYTE
typedef unsigned char BYTE;
BYTE b1, b2;
那在起了新名字之后 unsigned char 是否可以使用呢?
#include <stdio.h>
int main()
{typedef unsigned char BYTE;unsigned char a='a';BYTE b='b';printf("%c\n",a);printf("%c\n",b);
}
我们可以看到是可以使用的 我们在使用typedef的时候并不会影响到原来的类型使用 只是起了新名方便我们使用。
当然也可以使用 typedef 来为用户自定义的数据类型取一个新的名字。例如,您可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量
示例:这里提醒大家一下 strcpy的函数头文件在string.h
#include <stdio.h>
#include <string.h>
typedef struct BOOK
{char name[50];
}Book;
int main()
{Book book;strcpy(book.name,"pxd");printf("name:%s\n",book.name);return 0;
}
1.2 typedef vs #define
#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:
- typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
- typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
二输出和输入
当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。
当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中
其实我们只需要介绍几个函数的使用,比如我们经常使用到的printf就是输出函数 可以输出需要的内容到屏幕之上。我们将分三组进行分别的介绍
2.1scanf和printf
2.1.1 scanf
概述:用于从标准输入(键盘)读取并格式化 简单来说就是我们从键盘上键入的值将到程序中使用
基本格式:
scanf(格式化字符串,参数列表);
我们来通过示例来看:
#include <stdio.h>
#include <string.h>
int main()
{int a;char b;char name[5];scanf("%d",&a);scanf("%s %c",name,&b); printf(":%d\n",a);printf(":%c\n",b);printf(":%s\n",name);return 0;
}
这里我们需要注意的是一般是使用回车来结束一个scanf语句 在需要连续输入的时候格式控制符中间是空间 那我们键入的时候 键入一个值 后面就必须跟一个空间再键入第二个值
2.1.2 printf
printf(“格式控制字符串”,输出列表);
其中普通字符全部原样输出 其中a=就是普通字符 %d是格式控制符 即a输出在屏幕上的位置
int a;
printf("a=%d\n",a);
getchar() & putchar() 函数
int getchar(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。
int putchar(int c) 函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。
请看下面的实例:
实例
#include <stdio.h>int main( )
{int c;printf( "Enter a value :");c = getchar( );printf( "\nYou entered: ");putchar( c );printf( "\n");return 0;
}
当上面的代码被编译和执行时,它会等待您输入一些文本,当您输入一个文本并按下回车键时,程序会继续并只会读取一个单一的字符,显示如下:
$./a.out Enter a value :runoobYou entered: r
gets() & puts() 函数
char *gets(char *s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。
int puts(const char *s) 函数把字符串 s 和一个尾随的换行符写入到 stdout。
实例
#include <stdio.h>int main( )
{char str[100];printf( "Enter a value :");gets( str );printf( "\nYou entered: ");puts( str );return 0;
}
我们最经常用的还是printf