一、字符串
-
字符串
字符常量:是用单引号括起来的一个字符。
字符串常量:是由双引号括起来的一串字符。
“CHINA”在内存中占6个字节
在内存中,系统会自动的在字符串的末尾加上一个\0’,作为字符串的结束标志,系统只要看到它就认为该字符串到此就结束了。但要注意,该字符串的实际长度还是为5。
字符数组可以没有’\0’,但字符串必须有’\0’ -
字符串的输入
1.输入字符串时候如果遇到空格和回车会作为分隔符不能被读入
例如:
TIPS:
1gets()可以读取空格,可以接收空格,回车符将被替换成\0
2使用"%[\n]“可以接受输入带空格的字符串,回车结束。scanf(”%[\n]s", str);
3使用fgets()
-
字符串的输出
printf("%s”,字符串首地址);遇到第一个’\0’结束输出。
利用puts输出字符串
puts(字符串的起始地址); -
用于字符串处理的函数
#include <string.h>
字符串复制(拷贝)函数strcpy。调用形式为:strcpy(s1,s2);
字符串连接函数strcat。调用形式为:strcat(s1,s2);
求字符串长度函数strlen。调用形式为:strlen(s);
字符串比较函数strcmp。调用形式为:strcmp(s1,s2);
二、局部变量和全局变量
-
局部变量
作用域:在函数内部,从变量定义到函数结束
在不同函数内的局部变量名可以相同 -
全局变量
在函数外部定义变量成为全局变量
全局变量作用域是整个项目中所有文件 如果在其他文件中使用需要加入声明extern int a;
全局变量名可以和局部变量名重名
如果在函数内部定义了局部变量全局变量不起作用编译器会采用就进原则
三、宏定义
-
无参数的宏定义(宏常量)
#define NUM 100 //常量习惯于天写字母
const int NUM=100; -
带参数的宏定义(宏函数)
#define 函数名 函数体
例:
#define SUM( x,y) (x+y) // 带参数的宏定义一般会加上() 防止运算的有限级别导致代码出错
#define MAX( x,y) ((x>y)?(x) :(y)) -
文件包含处理
inciude <>(导入系统文件) 或者 inciude " "(导入自定义的文件)
头文件 函数声明 全局变量定义 结构体类型定义