c第三天

八、环境变量
key=value
$key -> value
SHELL=/bin/bash
通过命令修改:export 变量名=变量值
一但对出当前会话,所有对环境的修改都将失效。
通过主配置文件修改:.bashrc/.bash_profile
每次启动会话,shell都会读取主配置文件,并根据其中的内容设置环境变量。
九、简单shell脚本
shell脚本就是一个拥有可执行属性的文本文件,其中可以包含多条命令、变量、各种控制结构,已完成比较复杂的任务。
#表示注释,被脚本解释器忽略,但是#!/bin/bash不会被忽略,其目的是告诉脚本解释器用什么shell运行该脚本。
第三课    C语言编程基础
一、背景介绍
1960,剑桥大学,Algol 60,算法语言,复杂,不适于系统编程。
1963,MIT,CPL(Combined Programming Language)语言,更贴近底层,适合系统编程,太复杂。
1967,BCPL(Basic CPL),简单化,实用。
1970,贝尔实验室,B语言,针对UNIX系统开发。
1973,DMR(里奇),C语言,引入类型,使用结构化控制。
1978,《The C Programming Language》出版,K&R,C语言走向世界。
1989,ANSI C标准,C89。
1990,修订,C90。
1999,ISO C标准,C99。
二、我的第一个C语言程序
三、C语言程序的开发周期
1.编辑:编写源程序,保存退出。hello.c
2.预编译:处理包含文件和宏扩展。
3.编译:生成目标模块。hello.o
4.链接:将多个目标模块和库链接成一个可执行程序。a.out
5.载入:将可执行文件读入内存,形成进程映像。
6.运行:处理器执行进程映像中的代码。从main函数开始。
四、gcc常用选项
-o 输出文件名:指定生成的文件名
-E:只做预编译
-c:只做编译,不做链接
-S:产生汇编文件
-l:指定链接库
-L:指定库的目录
-I:指定头文件的目录
-std=c89/c99:指定语言标准
-Wall:生成警告
五、#include指令
用<>包含的头文件,到标准头文件路径(usr/include)下寻找。
用""包含的头文件,优先到当前目录下寻找。
一般情况下,建议用<>包含标准头文件,用""包含自定义头文件。如果头文件既不在当前目录下,也不在标准头文件路径中,可以通过-I选项告诉编译器到哪里寻找这样的头文件。
六、C语言程序的注释
1.以/*开始,以*/结束,中间的部分为注释,没有行数限制,不能嵌套。
2.//单行注释,从//开始到本行末尾是注释。
a /* b c
d */ e
f
b c d是注释
a // b c
d // e
f
b c e是注释
七、编码规范
1.语句尽量分在多行中书写。
int main (void) {printf ("hello word"); return 0;} // 不好
int main (void) {
    printf ("hello world\n");
    return 0;
}
2.空格可以使代码更加清晰。
3.缩进可以增强代码的层次感。
4.必要空行可以增强代码的逻辑性。
5.命名风格
1)匈牙利命名
int nAge;
CreateWindow
2)下划线方式
create_window
八、变量
1.变量就是内存中的一个区域,其值可以改变,通过变量名加以标识和区分,变量有类型和值。
2.变量类型包括char(1字节)、int(4字节)、short(2字节)、long(4字节)、long long(8字节)、float(4字节)、double(8字节),等等。另外还包括复合类型。
1.23 = 123 * 10^-2阶码,IEEE
3.变量的定义
类型 变量名 = 初值;
int a = 10;
int b; // 未初始化的变量,其值不确定
4.可以printf函数输出变量的值
printf ("%d", a);
printf ("%d %d", a, b);
printf ("a=%d, b=%d\n", a, b);
a=10, b=1434
整型:%d
字符:%c
浮点数:%f/%lf
5.变量名必须是合法标识符
1)必须以字母或下划线开头
int abc; // ok
int _abc; // ok
int 2abc; // error !
int *abc; // error !
2)包含字母、下划线和数字
int a_2; // ok
int a-2; // error !
3)大小写敏感
int a, A; // 两个变量
4)不能与关键字冲突
int float; // error !
5)理论上变量名的长度没有限制,但是具体的编译器往往会截断。
6)变量命名最好有意义。
int age;
float salary;
int max;
int ttt, zyu; // 不好
九、基本数据类型
C语言的基本数据类型包括:
char:字符/单字节整数,1字节
unsigned char:非负的单字节整数,1字节
short:双字节整数,2字节
unsigned short:非负的双字节整数,2字节
int:四字节整数,4字节
unsigned int:非负的四字节整数,4字节
long:四字节整数,4字节
unsigned long:非负的四字节整数,4字节
long long:八字节整数,8字节
unsigned long long:非负的八字节整数,8字节
float:浮点数,4字节
double:双精度浮点数,8字节
long double:长双精度浮点数,12字节
1.字符型
1)字符型变量的底层存储就是整数,对于字符而言存储的是该字符在ASCII表中的代码。
'A' - 65
'a' - 97
'0' - 48
2)字符常量通过一对单引号('')表示。
char c = 'A'; // 实际上c中存放的是65
3)用printf显示字符的时候,如果用%c显示的是字符,如果用%d显示的就是ASCII码。
4)转义字符
\n:换行,光标移到下一行行首
\r:回车,光标移到当前行行首
\t:制表
\v:垂直制表
\b:退格
\a:响铃
\\:\
\':'
\":"
%%:%
5)取值范围
char:8位,1字节,有符号,-128 ~ 127(-2^7 ~ 2^7-1)
unsigned char:8位,1字节,无符号,0 ~ 255 (0 ~ 2^8 - 1)
2.整型
1)int代表16位或32位整数,可以用short/long进行修饰,short (int)用16位表示,long (int)用32位表示。有符号的int有正负之分,无符号的int (unsigned int)只有0和整数。
2)整型常数
100:默认为int,十进制
100L:long
100LL:long long
100u:unsigned int
100UL:unsigned long
0100:八进制,64
0x100:十六进制,256
3.浮点数
float/double/long double
1.23:默认为double
1.23f:float
1.23L:long double
浮点类型在计算机内部存储都是近似值。
十、三个常用函数
printf (格式化串, 变量表);
scanf (格式化串, 地址表);
从键盘读取数据到变量中。
int a;
scanf ("%d", &a);
一次调用输入多个数据,各个数据以空白字符(空格、制表、回车)分隔。

sizeof ():获取一个变量或类型的字节数。

#include <stdio.h>
int main (void) {
    char c = 'A';
    printf ("c=%c\n", c);
    printf ("c=%d\n", c);
    c = c + 1;
    printf ("c=%c\n", c);
    printf ("c=%d\n", c);
    printf ("hello\n");
    printf ("hello\r");
    printf ("%d\t%d\n", 100, 200);
    printf ("%d\v%d\n", 300, 400);
    printf ("hello\bworld\n");
    printf ("\a\a\a\a");
    printf ("hello\\world\n");
    printf ("\'hello\'\n");
    printf ("\"hello\"\n");
    printf ("100%%\n");
    c = 128;
    printf ("%d\n", c);
    unsigned char uc = 256;
    printf ("%u\n", uc);
    return 0;
}


/* hello.c
   这是一个非常简单的程序
   作者:minwei
   时间:2012-8-1
   目的:C语言教学
*/
/* 包含文件 */
#include <stdio.h> // 标准输入输出
#include "hello.h" // 自定义头文件
/* 主函数,进程的入口 */
int main (void) {
    /* 打印输出 */
    printf ("hello world\n");
    /* 返回0 */
    return 0;
}

#include <stdio.h>
int main (void) {
    int a;
//    scanf ("%d", &a);
//    printf ("a=%d\n", a);
    char c;
//    scanf ("%c", &c);
//    printf ("c=%c\n", c);
    float f;
//    scanf ("%f", &f);
//    printf ("f=%f\n", f);
    double d;
//    scanf ("%lf", &d);
//    printf ("d=%lf\n", d);
    scanf ("%d%f%lf", &a, &f, &d);
    printf ("%d,%f,%lf\n", a, f, d);
    return 0;
}


#include <stdio.h>
int main (void) {
    printf ("%d\n", sizeof (char));
    printf ("%d\n", sizeof (short));
    printf ("%d\n", sizeof (int));
    printf ("%d\n", sizeof (long));
    printf ("%d\n", sizeof (long long));
    printf ("%d\n", sizeof (float));
    printf ("%d\n", sizeof (double));
    printf ("%d\n", sizeof (long double));
    unsigned int u;
    printf ("%d\n", sizeof (u));
    return 0;
}


#include <stdio.h>
int main (void) {
    int a = 10;
    int b;
    int c = 20, d;
    printf ("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
    float e = 1.23;
    double f = 4.56;
    printf ("e=%f,f=%lf\n", e, f);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值