文章目录

  • 数据类型
    • 字符,整型,浮点型
    • sizeof 展示字节大小
  • 变量 常量
    • 变量
      • 变量:全局变量 /局部变量
      • 变量的使用
      • 变量的作用域和生命周期
    • 常量
      • const修饰的常变量
      • define定义的标识符常量
      • 枚举常量:可以一一列举
  • 字符串+转义字符+注释
    • 字符串
      • strlen() 计算字符串的长度
    • 转义字符
      • \ddd的含义详解: ---ddd表示1-3个八进制的数字
      • \xdd的含义详解:---dd表示2个十六进制数字
    • 注释
    • 选择语句
    • 循环语句
    • 函数:库函数/自定义函数
    • 数组:一组相同类型元素的集合
    • 操作符
      • 单目操作符: sizeof
      • 单目操作符:~(按二进制位取反)
      • 单目操作符: --:前置--,后置--
      • 单目操作符:++:前置++,后置++
      • 逻辑操作符:&& - 逻辑与(全真为真)
      • 逻辑操作符:|| - 逻辑或(有真为真)
      • 条件操作符:exp1 ? exp2 : exp3
    • 常见关键字
      • 关键字 static
    • #define定义常量和宏
    • 指针
    • 结构体
c语言头文件代码
#define _CRT_SECURE_NO_WARNINGS //防止会出现某个函数出现不匹配的情况。
#include <stdio.h>
#include<>
int main()
{//写代码区域。
//记得写return0;}

数据类型

%d  -打印整型
%c  -打印字符
%f  -打印浮点数字 -小数
%s  -打印字符串
%p  -打印地址
字符,整型,浮点型
//字符:charchar ch='A';
printf ("%c\n",ch)
//整型 short int ; int ; long ;///short int 短整型
///int 整型
///long  长整型short int  q = 5;
printf ("%d/n",q);int  w = 5;
printf ("%d/n",w);long  e= 5;
printf ("%d/n",e);
//浮点型
float f = 5.0;
printf ("%f/n",f);
//浮点型
float f = 5.0;
printf ("%f/n",f)
sizeof 展示字节大小


计算机中单位:字节
bit 比特位:存放一个二进制位
byte 字节:1 byte = 8 bit
kb:1 kb =1024 bit

变量 常量

int age = 20;
float weight = 95.6f; //防止出现警告

变量

变量:全局变量 /局部变量
 全局变量:定义在({})以外的变量局部变量:定义在({})以内的变量------作用域:局部变量所在的局部范围
int a= 100; //全局变量
int main ()
{int b = 20; //局部变量
}

/// 全局变量与局部变量可以同时存在,但当两者名字一样的,局部变量>全局变量。
// 建议全局变量与局部变量的名称不要相同。

变量的使用
 //计算两个数的和int num1 = 0;int num2 = 0;scanf("%d%d",&num1,&num2);int sum = 0;// c语言规定,变量要定义在当前代码块的最前面【最好就是把这句话写到定义的位置】sum =n um1+num2;printf("sum = %d/n",sum);return 0;//输入数据--使用输入函数//输入函数: scanf("%变量类型”,&变量名称)
变量的作用域和生命周期

作用域:

 全局变量的作用域是整个工程。局部变量的作用域是变量所在的局部范围。

生命周期:

 全局变量的生命周期:整个程序的生命周期局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。

常量

const修饰的常变量
//const 后,num后续不可以修改。
const int num =4;
define定义的标识符常量
#define Max 10 //define定义的标识符常量int main(){printf("%d\n",MAX);
return  0;
}
枚举常量:可以一一列举
//性别:男,女,
//三原色:红、黄、蓝
//星期: 1,2,3,4,5,6,7enum Sex
{MALE;
FEMALE;
}int  main()
{printf("%d\n",MALE);
printf("%d\n",FEAMALE);return 0;
}>>>>>>输出结果:
0
1

字符串+转义字符+注释

字符串

 字符串的结束标志是一个\0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符内容。

//字符串类型
//int float
//charint main()
{char arr1[]="abc";//char类型的数组进行存放数组//"abc"---'a','b','c','\0'  默认有一个\0//【为了防止会出现“烫烫烫烫“的问题,最好在字符输出时候加上'\0'作为结束标志】char arr2[]="hello world";char arr3[]={'A','B','C'};printf("%s\n",arr1);//简单输入输出printf("%s\n",arr2);printf("%s\n",arr3);return  0;}>>>>>>输出结果:
abc
hello world
ABC
strlen() 计算字符串的长度

>>>>>> 输出结果:
3
随机值

转义字符

     \t      ----水平制表符【相当于键盘上的tab】\\     ----用于表示一个反斜杠,防止它被解释为一个转义序列符.\"     ----用于表示一个字符串内部的双引号\b       -----退格符\n      -----换行\r   -----回车\ddd ---ddd表示1-3个八进制的数字  。  例如:\130x\xdd  ---dd表示2个十六进制数字。例如:\x30
\ddd的含义详解: —ddd表示1-3个八进制的数字
【\32】   32是2个8进制数字
//3   2     作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
//32 -- 》 10进制 26 - -》作为ASCII码值代表的字符是“->”

\xdd的含义详解:—dd表示2个十六进制数字
【\61】 61是2个16进制数字
//6    1   作为16进制代表的那个十进制数字,作为ASCII码值,对应的字符
//6    1 -- 》 16进制 97 - -》作为ASCII码值代表的字符是“a”

注释

1.代码中有不需要的代码可以直接删除,也可以注释掉
2.代码中有些代码比较难懂,可以加一下注释文字
方法①
//某句单独注释
方法②
/*
某段注释
*/

选择语句

  if .... else....

循环语句

  while语句for语句do ... while语句

函数:库函数/自定义函数

//自定义函数:Add函数
Add(int x,int y)
{int z =  x+y;
return z;
}int main()
{int a =100;int b=1;int num = 0;sum = Add(a,b);printf("sum= %d\n",sum);return 0;
}

数组:一组相同类型元素的集合

数组下标从0开始
//定义一个整形数组,最多放10个元素
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//创建数组
int arr[] = {0,1,2,3,4}
int arr[10]={0}//打印单独的数组元素
printf("%d\n",arr[4]);//下标的方式访问元素
arr[下标];//打印全部数组的元素
//打印 0-9的元素
int i=0;
while(i<10)
{printf("%d ",arr[il);i++;
}

操作符

算术操作符:+ - * /('除'得到的商) %('取模'得余数)移(2进制)位操作符:>>(右移:乘2)  <<  (左移 :除2)位操作符: &(按位与) ^(按位或) |(按位异或)赋值操作符:=,  += , -= 单目操作符:!(逻辑反操作),+,&(取地址),sizeof,~(二进制按位取反),--,++,&(间接访问操作符(解引用操作符)),()(强制进行类型转换)逻辑操作符:&&(逻辑与),||(逻辑或)关系操作符:>, >=, < , <=, !=, == 条件/三目操作符:exp1 ? exp2 : exp3(exp1是真,运行exp2; exp1为假,运行exp2)下标引用、函数调用和结构成员:[ ], (), . ,->
单目操作符: sizeof

单目操作符:~(按二进制位取反)


单目操作符: --:前置–,后置–
//后置--:先使用,再--
int main(){int a = 10;int b = a--;printf("a=%d  b=%d\n",a,b);// a= 9  b=10return 0;
}//前置--:先--,后使用
int main(){int a = 10;int b = --a;printf("a=%d  b=%d\n",a,b);// a= 9  b=9return 0;
}
单目操作符:++:前置++,后置++
前置++:先++,后使用
后置++:先使用,再++
//后置++:先使用,再++
int main(){int a = 10;int b = a++;printf("a=%d  b=%d\n",a,b);// a= 11  b=10return 0;
}//前置++:先++,后使用
int main(){int a = 10;int b = ++a;printf("a=%d  b=%d\n",a,b);// a= 11  b=11return 0;
}
逻辑操作符:&& - 逻辑与(全真为真)
int main(){//真 - 非0//假 - 0//&& - 逻辑与int a =9;int b = 5;int c=a&& b;printf("c= %d\n",c); // c = 1return 0;
}
逻辑操作符:|| - 逻辑或(有真为真)
int main(){//真 - 非0//假 - 0//|| - 逻辑或int a =0;int b = 5;int c=a || b;printf("c= %d\n",c);//c = 1return 0;
}
条件操作符:exp1 ? exp2 : exp3
int main(){int a=10;int b = 20;int max = 0:if (a>b)max =a;elsemax = b;//max=(a>b ?a:b)  //a>b的话,输出a;否则输出breturn 0;
}

常见关键字

关键字 static
static是用来修饰变量和函数的1.修饰局部变量-静态局部变量:局部变量的生命周期变长2.修饰全局变量-静态全局变量:改变了变量的作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了原函数就没办法再使用了。3.修饰函数-静态函数:改变了函数的链接属性----外部链接属性-->内部链接属性
void test(){int a = 1;a++;printf("a= %d\n" ,a);
}int main(){int i=0;while(i<5){test();i++;}return 0;
}>>>>>输出结果:
a=2
a=2
a=2
a=2
a=2

加上static后:修饰局部变量-静态局部变量:局部变量的生命周期变长

void test(){static int a = 1;  //static 修饰局部变量//局部变量的生命周期变长a++;printf("a= %d\n" ,a);
}int main(){int i=0;while(i<5){test();i++;}return 0;
}>>>>>输出结果:
a=2
a=3
a=4
a=5
a=6

#define定义常量和宏

//#define 定义标识符常量
#define MAX 100//#define 可以定义宏-带参数
#define MAX(x,y)  (x>y?x:y)

指针

所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址

int main(){int a = 10;p = &a; printf("%p\n",&a);//有一种变量是用来存放地址的-指针变量return 0;}
int main(){int a = 10;//创建变量啊,大小为4个字节int* p = &a; //取a的地址,存放到p里面printf("%p\n",&a);//有一种变量是用来存放地址的-指针变量printf("%p\n",p);*p=20; // 解引用操作符  //把20放到p里面去,此时p里面存放的a的数值是20return 0;}

结构体

//输入函数: scanf(“%变量类型”,&变量名称)
//输出函数:printf(”%变量类型",变量名称)
// ‘\n’ 换行符
// ‘\0’ 字符串的结束标志
// sizeof() 查看字符类型
// strlen() 计算字符串的长度

//求两个数目中的较大值
int MAX(int x,int y){if(x>y)return x;elsereturn y;
}
int main(){int num1=10;int num2=20;int max=0;max=MAX(num1,num2);printf("MAX= %d\n",max);return 0;}

B站C语言学习,颠覆谭浩强C语言,可能是最好的C语言视频 【自用笔记】相关推荐

  1. 《C语言程序设计》谭浩强-学习笔记以及课后习题答案(考前复习/考研/专升本)

    此笔记是几年前为了本人考试而学而写,今日回首感慨良多,便把尘封多年在旧电脑中的学习笔记翻出来分享给大家 此笔记参考书籍: <C语言程序设计>谭浩强 根据前九章内容主要知识点进行梳理 如果有 ...

  2. 《C语言程序设计》(谭浩强第五版) 第2章 算法——程序的灵魂

    <C语言程序设计>(谭浩强第五版) 第2章 算法--程序的灵魂 习题解析与答案 你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解 ...

  3. C语言实验系统PPT展示,c语言第四谭浩强机实验课件.ppt

    c语言第四谭浩强机实验课件.ppt 名人名言,"人最宝贵的东西是生命,生命属于我们只有一次.人的一生应当这样度过当他回首往事时,他不因虚度年华而悔恨,也不因碌碌无为而羞愧.这样在他临死的时候 ...

  4. 《C语言程序设计》谭浩强 第五版 编程10题解答2

    <C语言程序设计>谭浩强 第五版 编程10题解答2 11.素数计算 编写程序计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔减.加之和,即第1个素数- ...

  5. C语言程序设计(谭浩强第五版)——习题

    C语言程序设计(谭浩强第五版)--习题 第3章 最简单的C程序设计--顺序程序设计 第4章 选择结构程序设计 第5章 循环结构程序设计 第6章 利用数组处理批量数据 第3章 最简单的C程序设计--顺序 ...

  6. C语言程序设计(谭浩强)

    1     C语言概述... 2 1.1          C语言的发展过程... 2 1.2          当代最优秀的程序设计语言... 2 1.3          C语言版本... 2 1 ...

  7. 谭浩强c语言辅导书,既然谭浩强的C语言教材不好,那应该选什么书作C语言教材?...

    易道云学院C语言/C++语法学习不在于你看了多少书,而在于你实实在在写了多少有效代码.易道云学院 回到这个问题,其实我个人认为,看什么样的书,也是需要应对不一样的场景易道云学院去有目的地涉猎.我暂时想 ...

  8. 谭浩强c语言 读后感,读谭浩强C语言数据结构有感(1)

    1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...

  9. c语言程序设计教程谭浩强张基温,C语言程序设计教程(第2版)

    摘要: 考虑到一般读者已有程序设计的初步知识,对算法也有一定的了解,在本书中不再详细讲解算法,而着重介绍如何根据已知的算法去编写C程序.这样可以更好的消化C语言本身. 本书介绍的C语言是其最基本的部分 ...

最新文章

  1. Python A+B问题
  2. Android自定义View绘制闪闪发光的文字
  3. 一文详解Redis中BigKey、HotKey的发现与处理
  4. 佳能7200cdn打印自检_家用打印机如何挑选? 家用打印机性价比较高的有哪些?...
  5. 20175212 《Java程序设计》第2周学习总结
  6. linux与mac和windows的 文件共享
  7. 动易 转 html5,动易dedecms数据转成dedecms的php程序
  8. UniWebView使用总结
  9. 游戏文案策划:资料推荐
  10. 算法设计与分析期末复习
  11. wget: command not found的两种解决方案
  12. Java培训机构哪个好?该怎么选择
  13. 图形学笔记(二十)粒子、刚体、流体的模拟—— 欧拉方法、Errors 和 Instability、中点法、自适应步长、隐式欧拉方法、Runge-Kutta方法、刚体与流体模拟(质点法、网格法、MPM)
  14. R语言小实践---云词分析
  15. Linux中合并多个Pdf文件(使用pdfunite,合并比较简单)
  16. Java的应用领域有哪些
  17. 怎么样让别人访问我的计算机,局域网内怎么让别人访问我的电脑
  18. laravel-jwt attempt()异常问题处理
  19. 线程 - 线程安全 - 线程优化
  20. bzoj 1202 [HNOI2005]狡猾的商人

热门文章

  1. Vue后台 - 利用 mockjs 完成数据的获取、编辑、增加、删除和分页【详细步骤篇】
  2. 恋人之间的分手费,合法吗
  3. Hexo博客系统部署教程 - 最全面的Hexo部署方法,交给你了~
  4. 《国富论》笔记(论分工)
  5. Java如何求得字符串的长度
  6. matlab神经网络每次训练都保存网络,Matlab如何解决神经网络每次训练结果不同的问题?...
  7. Ubuntu网卡配置文件配置网关之迷思gateway4
  8. 华云数据与应通科技签署战略合作协议 携手开启深化数字化转型新篇章
  9. SpringBoot + Prometheus + Grafana 打造可视化监控一条龙!
  10. 指示函数 indicator function