班级空间网站建设作用,南京 网站制作公司,房产资讯最新消息,白色网站配色汇总一#xff08;linux环境#xff09;
/bin #xff1a;bin是二进制#xff08;binary#xff09;英文缩写。
/boot#xff1a;存放的都是系统启动时要用到的程序。 /dev#xff1a;包含了所有Linux系统中使用的外部设备。 /etc#xff1a;存放了系统管理时要用到的…汇总一linux环境
/bin bin是二进制binary英文缩写。
/boot存放的都是系统启动时要用到的程序。 /dev包含了所有Linux系统中使用的外部设备。 /etc存放了系统管理时要用到的各种配置文件和子目录。 /lib存放系统动态连接共享库的。 /home管理普通用户的主目录 /root:根用户超级用户的主目录
1. ~ 家目录符号
2. / 根目录符号
3. $ 普通用户
4. # 超级用户 汇总二数据 void类型大小为1个字节
\0---0
\n---10---32 (这是个空格
......
0 ---48 (差48
1 ---49
......
A ---65
B ---66
......
a ---97 (差32
b ---98
1.char
char 与 unsigned char 1字节 2^8256 char 数值范围-128~127 unsigned char 数值范围0 ~256
若存储char类型 129由于补码的存在CPU读取的是补码编译成功后输出-127
若存储unsigned char 类型 -1 输出255
补码1111 1111
反码1111 1110
源码1000 0001
float4字节、double 8字节 汇总三常量、变量
常量
1.整型常量2.字符常量3.字符串常量4.浮点常量
变量
定义
存储类型 数据类型 变量名
存储类型1.自动auto可以不写2.静态static 3.寄存器register4.外部extern静态存储
数据类型
1.字符变量
//1. 定义
char a;
//2. 定义并初始化
char a a;
//3. 赋值
a b;
2.整型变量
//1. 定义
short a;
int b;
long c;
//2. 定义并初始化
int b 5;
//3. 赋值
b 1;
3.浮点变量
//1. 定义
float a;
double b;
//2. 定义并初始化
float c 5.5;
//3. 赋值
c 1.1;
局部变量、全局变量、静态变量、外部变量
1.作用域能使用的范围限制
#include stdio.h
int main(int argc, const char *argv[])
{
{
int a10;
printf(in a%d\n, a);
}
/*作用域*/
//printf(out a%d\n, a);
return 0;
}花括号内为一个语句块
.花括号内为一个语句段。
2.时间周期能使用的时间限制 结论两次调用的函数中变量b使用的空间不同第一次调用后b的空间会释放掉第二次会重新申请空间所以两次打印b的值不同。
3.局部变量和全局变量
#include stdio.h
/*全局变量*/
int a10;
int main(int argc, const char *argv[])
{
{
/*局部变量*/
int b20;
printf(a%d\n, a);
printf(b%d\n, b);
}
//printf(a%d\n, a);
//printf(b%d\n, b);
return 0;
}
局部变量存储与栈中全局变量存在于静态存储区
4.静态变量和外部变量
静态变量
#include stdio.h
void fun(void)
{
//在程序执行期间只申请一次空间
static int b 1;
printf(b%d\n, b);
b 2;
//函数结束静态变量不释放
}
int main(int argc, const char *argv[])
{
fun();
fun();
return 0;
//程序结束静态变量释放
}
输出结果为 b1 b2
说明b为同一个使用的是同一块地址空间第二次调用函数时不在申请新地址去存b。main函数结束时静态存储区才释放。
加上static从原来的栈中存放改为静态存储区整个程序执行期间都有不销毁。改变了生命周期
静态区
1.常量2.静态变量3.静态局部变量4.全局变量
auto类型的 局部变量存储于栈之中
全局变量存储于静态空间区
程序结束静态存储区内容才释放。
外部变量
A.c
int global_a 100;
//static int global_a 100;
B.c
#include stdio.h
extern int global_a;
int main(int argc, char *argv[])
{
//int global_a;
printf(global_a%d\n, global_a);
return 0;
}
注意: extern声明的是定义过的全局变量静态存储区所以extern的变量是静态存储区内存管理
提醒起名字要遵守语法规范且要见名知意尽量使用英文单词格式。gcc A.c B.c -o out
若B.c中global_a前没写extern同样会打印出结果。因为int global_a 100;是全局变量存储于静态区同样会执行但是还是要申请因为此文件中其他同名变量可能会赋值
注意: extern声明的是定义过的全局变量静态存储区所以extern的变量是静态存储区内存管理提醒起名字要遵守语法规范且要见名知意尽量使用英文单词格式。
全局变量和局部变量同名的话采用就近原则
汇总四内存管理
1.内存管理 数据区这一块的内存在程序编译时就已经分配好在程序整个运行期间都存在。属于静态内存分配。 栈自动局部变量系统分配的内存向下增长 堆程序员主动申请的、动态分配的内存向上增长。malloc、free
2.自动局部变量和静态局部变量
(auto)自动局部变量栈区生命周期是当前语句块、函数作用域是当前语句块、函数。 (static)静态局部变量数据区生命周期是当前程序作用域是当前语句块、函数。
3.全局变量、静态全局变量 全局变量数据区生命周期是当前程序作用域是当前程序。注意不能被auto修饰全局变量是静态内存分配。 (static)静态全局变量数据区生命周期是当前程序作用域是当前文件。不能跨越.c文件
4.全局变量与外部变量 全局变量可以被声明外部变量所以外部变量是静态内存分配。 静态全局变量因为作用域的限制不能被声明为外部变量。
汇总五 运算符 1.浮点类型数据不能取余 2.前、前-- 运算规则先运算后自增\自减
int a 1, b 2;
a b;
printf(a %d, b %d\n, a, b);
// a 2, b 3
3.后、 后-- 运算规则先自增\自减后运算
int a 1, b 2;
a b;
// a 3, b 3
4.逻辑运算
1.逻辑运算的结果只有真假值的优先级比||高优先执行
2.|| 运算有提前截断现象左条件式为真时右条件不会执行。
#include stdio.h
int main(int argc, const char *argv[])
{
int a1, b2;
if( a || b ){
printf(a%d, b%d\n, a, b);
}
return 0;
}
//a2,b2
5.位运算
参与运算的量按二进制位进行运算。 包括位与()、位或(|)、位非(~)、位异或(^)、左移()、右移()六种。
6.条件运算符三目运算符 表达式A ? 表达式B : 表达式C 这是一个三目运算符用于条件求值表达式A如果为真执行表达式B反之执行表达式C。 汇总六 输入输出
1.输出字符 putchar
int putchar(int);
eg:
char a A;
putchar(a);
参数: 为字符常量、变量或表达式
功能把字符c输出到显示器上
返值正常为显示的代码值
2.输出字符串 puts
int puts(const char *);
eg:
char str[20] hello world;
puts(str);
功能向显示器输出字符串输出完换行
说明字符数组必须以‘\0’结束
3.输入字符 getchar
int getchar(void);
eg:
char c getchar();
功能从键盘读一字符
返值正常返回读取的代码值出错或结束键盘输入,返回-1
4.输入字符串
char *gets(char *);
eg:
char str[20];
gets(str);
功能从键盘输入一以回车结束的字符串放入字符数组中
并自动加‘\0’
说明1函数没有实现检查字符串长度能否完全放入所以
输入串长度应小于字符数组维数。
说明2与scanf函数不同gets函数并不以空格作为字符
串输入结束的标志。
#include stdio.h
int main(int argc, const char *argv[])
{
char string[15] {0};
printf(Input a string:);
gets(string);
printf(%s\n, string);
return 0;
}
5.scanf
int scanf(const char *restrict, ...);
eg:
int n;
char str[20];
scanf(%d %s, n, str);
%d 有符号整型 %c 字符 %s 字符串 %f 单精度浮点型
%s 获取字符串时提供的应当是一个指向字符数组的指针
功能按指定格式从键盘读入数据存入地址表指定存储单元中,并按回车键结束
返值正常返回输入数据个数
地址表变量的地址常用取地址运算符
在整型时 字符型时
吃掉摁下的回车键 抑制符*的使用吃掉了空格字符之间多敲了一个空格
scanf2.c
#include stdio.h
3.处理脏数据
int main(int argc, const char *argv[])
{
char ch1, ch2, ch3;
//%c 作为格式输入时对空格键tab键\n 都作
为一个有效字符读入
scanf(%c%c%c, ch1, ch2, ch3);
printf(ch1 %c ch2 %c ch3 %c\n,
ch1, ch2, ch3);
//enter 按键需要吃掉 getchar获取到这个\n
getchar();
//%*c抑制一个字符
scanf(%c%*c%c, ch1, ch2);
printf(ch1 %c ch2 %c\n, ch1,ch2);
return 0;
}
6.3.处理脏数据
//回收垃圾方式的三种方式
//方法1空格、若干空格、tab、\n
#if 0
scanf(%c %c %c, a, b, c);
#endif
//方法2%*c 回收任何一个字符 tab 键 空格键
\n
#if 0
//%*c 回收任何一个字符 tab 键 空格键
\n
scanf(%c%*c%c, a, b);
#endif
//方法3getchar()回收
#if 0
scanf(%c, a);
getchar(); //吃一个字符
scanf(%c, b);
#endif
printf(a%c b%c c%c\n, a, b, c);
return 0;
}
方式一可以吃掉多个空格
若只是输入一个字符建议方式三
汇总七控制语句
1.条件语句 a. if ---- else
b. Switch -- case 多条件选择语句 2.循环语句
a.while continue 当前循环到此结束重新开始
break则是退出循环 b. do ---- while 1) while循环中 (条件)后面没有分号do while 循环中 (条件) 后面有“”
2) while与do while执行循环体与判断的顺序不同 3)各自的应用场合不同。while强调“条件是否满足”do while强调“动作的行为”
两个死循环 c.for循环
3.break与continue
break
break从循环体内跳出即提前结束当前循环 注意:
break只能用在循环语句 和 switch语句中。
continue continue语句结束本次循环接着判定下一次是否执行循环。 注意: continue只结束本次循环,而break终止本层循环 continue是循环控制语句不能实现跳出条件语句if、switch。 4.return
return语句的一般形式: return(表达式)主要用于终止包含它的函数的执行若终止的为主函数则主程序结束 return 表达式的结果可以被返回到调用函数接收存储。
return的值一般有以下几种含义: 1.函数是否正常执行的反馈 库函数常用0表示正常结束非0有异常情况
自定义函数判定真假非零为真 2.函数需要返回一个运算结果值 根据定义的返回值类型存储、返回值。传值要注意类型一致或主动强制转换