c 笔记

c语言程序设计

教学目标

十个模块:

  • 1)基本概念和术语
  • 2)数据相关(类型,输入输出,存储)
  • 3)运算符和表达式
  • 4)控制流程 (通用)
  • 5)数组
  • 6)指针 (c和c++共有的)
  • 7)函数
  • 8)结构体及其应用
  • 9)宏
  • 10)库函数

最重要:控制流程~

学习目标:内容 c99标准 软件(vs)

程序的概念:为解决特定问题而用计算机语言编写的有序指令序列(代码序列)的集合。

程序设计语言:

  • 1)低级语言(机器语言):由一系列二进制0和1组成。
  • 2)高级语言(c语言):C语言是所有语言的基础,高级语言更加贴近人类的思维。

hello world! 程序

    /*
    这里是一条注释
    */
    
    #include<stdio.h> //这是一个头文件、头文件包含指令——预处理命令
    //“蓝色”:关键词or关键字(keyword)
    int main(void)//这是一个主函数、函数头(返回值类型,函数名,形式参数)
    {
        printf("Hello,world!\n");//语句、函数体
    
        return 0;//和主函数返回值有关。
    }
  • 一个c语言源程序必须有而且只能有一个main主函数

  • 源程序无法直接运行(C语言——编译器——可执行程序)

  • 编译器:人和计算机之间的“翻译”,把高级语言写程的源程序翻译成计算机能够读懂的执行语句。

  • 程序执行过程
    -编辑(成为源程序)
    -编译(生成目标文件/obj文件。编译的单位是原文件)
    -调试(debug)
    -链接(将一个项目下的目标文件链接起来生成可执行文件——.exe文件)
    -运行(运行结果)

  • 头文件
    头文件名用来指名你使用的库函数所在的文件名,头文件名后缀是.h

c语言程序详细解释

  • 一个简单的c语言结构
  • 注释:块注释/**/和行注释//

良好的编译风格:良好的注释、整齐的缩进、适当的空行、恰当的空格、每行最多只有一条语句!
算法的特征:有穷性、确切性、可行性、一个算法有零个或者多个输入、一个算法有一个或者多个输出
表示存储空间大小的单位:b,B,KB,MB,GB,TB
内存按字节编址,一个字节有8位
sizeof():得到变量或者数据类型占用的字节数:使用方法[sizeof(数据值)/sizeof(数据类型)]
变量名定义规则:变量名由数字,字母下划线组成。但不能以数字打头。并且不能出现c语言中的关键字。变量名区分字母大小。应该取名字取得有意义。

数据类型

基本类型
——整形(int)
——字符型(char)
——实型(单精度实型 float 双精度实型 double 长双精度实型 long double)实型无法直接判等哦!
构造类型
——数组类型
——结构类型 struct结构体
——联合类型 union
——枚举类型
指针类型
空类型(无值类型)
——void
整形(unsigned or signed自动忽略)
——短整型(short)
——整形(int)
——长整形(long)
char类型
char型的数据在内存中保存的是字母的ASCII码
字符串字面值会自动在字符串最后加上‘\0’,占据一个字节的内存
数据的存储
在内存中数值是以补码的形式存储的
浮点数的存储
传送门
转义字符:
\n换行
\t横向跳格——一个tab键
\r回车
\\反斜杠——\

输入输出

printf——scanf
putchar——getchar
puts——gets
printf
最小宽度(仅作用于输入小于最小宽度而填充用):%xd
精度说明:%.xd
长度修正说明符:%lld
转换操作符
标识符:“-”左对齐、“0”当输出长度小于字段宽度时,用0填充,遇-无效、“+”显示符号、“空格” 输出的数是正数,显示前导空格,是负数显示-号、 “#”如果输出的是负数,显示-号 输出的是八进制数,显示前导0 输出是十六进制数,显示前导0x 对于%g来说,可以防止尾随0被删除
一些练习:(要做!!)

– int  i=79;     printf("%o",i); – float 
x=333.1234567890;     printf("%.2f",x); – int i=79;   
printf("%x",i); – double y=333.1234567890;   
printf("%2.5f",y); – int i=7900;   printf("%2d",i); 
 float x=1.23456789;         printf("%.5f",x);

运算符

  • 1算术运算(要注意除法和取余。++and–)
  • 3逻辑运算 (与,或,非运算,短路逻辑)
  • 4赋值运算 (注意优先级,复合赋值运算)
  • 2关系运算 (结果只能是0 or 1)
    运算级:算术运算>关系运算>逻辑运算>赋值运算

条件运算符(?:)

  • 唯一的一个三元运算符
  • 运算过程:A?B:C(先判断A的值为真or假。为真执行B,为假执行C)
  • 优先级:第三低
#include<stdio.h>
int main()
{
   int a,b,c;
   a=3;
   b=4;
   c=(a>2 ? a++ : b=2);
   printf("%d %d %d",a,b,c);
   return 0;
}

a=4 b=4 c=3


位运算操作运算符

  • 操作类型为整形
  • 按位与,按位或,按位非(包括符号)——>先展开为二进制然后根据 与,或,非 规则进行操作
  • 按位异或(相同为0,不同为1),按位左移,按位后移
  • 左移和右移(一般来讲左移和右移都移动正数)
    右移,高位补零(无符号补零,有符号补符号位)

不同类型的变量进行运算

  • 小的先大的看齐《字节》
  • 一个char和一个short运算,他们都变成int整形运算
  • 实型向浮点型看齐
  • 有符号和无符号时,一般转换成无符号数

隐式转换:由编译器自动完成的转换

显示转换:手写出来的转换

ps:有时强制转换会出问题~

高段位部分会被截断!太不靠谱了奥


内存溢出

要避免哦~


基本控制流程

  • 流程图

基本结构

  • 顺序结构
  • 分支结构
  • 循环结构

顺序结构

执行从上到下执行
  • 表达式语句
  • label语句
  • 复合语句
  • 条件语句,switch语句
  • 循环语句
  • break语句,continue语句
  • return语句
  • goto语句
  • 空语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值