栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习笔记...初识

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习笔记...初识

2021.10.10

1.写代码

      创建项目

                创建空项目

      创建源文件

                xxxx.c  源文件

                xxxx.h  头文件

       编写代码

                写出主函数(main函数)  从主函数的第一行开始执行  -入口

                int 整形    {}函数体     return 0 返回类型

                打印函数  print是一个库函数  引用需要打招呼

包含一个头文件  #include

                一个工程中  可以有多个.c文件  只能有一个main函数

      编译运行

2.数据类型

      char  字符类型           1                sozeof  关键字  操作符    

      short 短整型             2

      int  整形                4

      long                     4

      long long                 8

      fioat 单精度             4

      doubt  双精度           8

     常量和变量

         创建一个变量          建议格式:   类型 名字 = 0

        %d  %f  %lf

      局部变量 和 全局变量

          {}内定义       {}外定义

          当两者名字冲突时   {}内引用以局部优先

3.作用域和生命周期

     局部:变量所在的范围       全局:整个工程  跨文件需要声明: extern int 名字

     创建到销毁之间的时间段      程序的生命周期

4:常量和变量

      字面常量     

      const修饰的常变量   const int num = 1; 其本质仍是变量  定义数组时需要用常量

      #define 定义的标识符常量    常量  不能更改

      枚举常量    可以一一列举的常量  

            enum (关键字)  Sex

                 {male=3,(附初始值)

                     female,

                     Secret}

            enum Sex s = male;   //定义s的性别 从sex里取

5.字符串和转义字符

        字符串 用双引号括起来的一串字符  结束标志是  在结尾的位置隐藏了一个

               (调试  监视窗口)          strlen() 求字符串长度

问题:   char arr[] = { 'a','b'};      

char arr1[] = { "ab" };

         双引号和单引号?  char?  数组?

2021.10.11

        转义字符   ?   防止?? 被认为三字母词

                   '  "    \     t 水平制表符  tab       

         ASCII表    ddd (后面表示一个八进制数字)    xdd (dd是十六进制数字)

6. 注释  //    后者不支持嵌套

7.选择语句    if  else

8.循环语句  

9.函数  一个模块 , 自己定义   返回结果

          返回类型    函数名 (参数类型  参数名 )

          int add(int x , int y)

10. 数组

         整形数组  int  arr[  ]= [ 1,2,3,4,5 ]

         字符数组  cher  ch [ 5 ] = [ ' a ' , ' b ' ] 不完全初始化   其余的默认为 0

         用下标访问

11.操作符

         算术操作符  + - * /  %       / 用整数除法只能整除   当有一个是小数的时候才会得到小数

         移位操作符    <<   >>   移动的二进制位  

         位操作符  &   按位与    | 按位或    ^按位异或

         赋值操作符  =   +=   -=  %=   

         单目操作符   当+  在 a+b 中   +为双目操作符

                ! 逻辑反操作        -  +  &  sizeof     ~ 对一个数的二进制按位取反 1  0  互换

                int a = 0 ;  ~a = -1    

                整数在内存中储存补码

                整数的二进制表示   原码  反码  补码   正数三者相同    

                00000000000000000000000000000000     0 的补码

                1111111111111111111111111111111111111     按位取反  最高位是符号位  认为是负数

                1111111111111111111111111111111111110    反码  补码-1

                10000000000000000000000000000001     取反 得原码  得整数   -1

          关系操作符     > <  >=  <=  ++  !=

          逻辑操作符    &&逻辑与   ||逻辑或

          条件操作符(三目操作符)  ?: exp1?exp2:exp3    

1成立  2 计算结果  反之 3计算

          逗号表达式   逗号隔开的一串表达式    从左向右依次计算 结果是最后一个表达式的结果

          下标引用 [  ]    函数调用操作符 ( ){函数名后面的()}

12.关键字

         c语言提供的  不能自己创建  不能用作变量名

         auto 每个局部变量是auto修饰的    { (auto)int a = 10 }自动创建自动销毁

         break  continue  do  case          char   const     default 默认    

double   else  enum 枚举

         extern 声明外部符号      float  for   goto语句  if  int  long     

register寄存器关键字

         return    short   signed有符号的-unsigned无符号      static   struct 结构体

         switch 语句      union 联合体   void 空    volatile暂时不讲  while

                          define  include  是预处理指令 不是关键字

         typedef 类型重定义  typedef unsigned int u_int  

可以用别名 复杂类型简单化来代替

         static  修饰局部  出局部之后不销毁  改变了生命周期保存值  

本质改变存储类型

                        内存中  栈区  局部变量  函数参数  

                                堆区  动态内存的分配

                                静态区  全局变量   static修饰的静态变量

         修饰函数   修饰全局  使全局变量 函数 只能在自己所在源文件内部使用

                        本质是将外部链接属性 改成了内部链接属性

2021.10.12

13. #define 定义常量 和 宏

         define  定义符号     宏  #define ADD(x,y)  x+y   完成替换

14.指针  

         内存中的储存单元的管理   1.怎么编号   2.一个内存单元多大空间

         32位  64位   -多少根地址线 -  物理线 - 通电 - 01  将电信号转化为数字信息 二进制序列

           32位  00000000000000000000000000000000

                          ........

                 1111111111111111111111111111111111111  一共2的32次方个地址编号(内存单元)

           一个内存单元是一个字节  byte  一个字符的长度

        int main ()

                  {  int a  = 10 ;                 //a在内存中分配空间   四个字节

                     printf( “%pn” , &a);//  %p是专门用来打印地址

                     int * pa = &a ;     // pa 是用来存放地址  在c语言中叫指针变量

                         // * 说明pa是指针变量 int说明 pa的执行对象是int 类型

                     char ch = ' w ' ;  char * pc = &ch ;

                     *pa = 20 ;           // * 为解引用操作符

           指针的大小都是 4个字节 (在32位的平台)     

15.结构体   用来描述复杂对象   可以让c语言创建出新的类型出来

         //创建学生类型

         struct Stu

              {  char  name[20];    int age;   double score;  }

         int main ()

              {  struct Stu  s = {"张三", 20 , 85.5} ;//结构体的创建和初始化

                 printf(“ %s %d %lf n”, s.name , s. age , s.score)}   结构体变量.成员变量

        结构体指针    struct Stu * ps = & s              ps -> name   (*ps).name

至此,对c语言的大概有了整体的一些认识,可以看懂一些代码,也完成了几道算法题,希望能慢慢进步。

这段虽然是这两天才整理笔记,但是内容已经反反复复的看了好几次,只能说,从一个什么都不知道的小白开始学习的时候,确实是对于编程很迷茫的,不知道这是什么那是什么,为什么这么写那么写是为什么,但是要做的大概就是,接受他的概念,在他的概念下思考逻辑,会有助于理解。

我想,学习一类新东西大概都是这样的,到稍微有些上手后,就会好很多。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/317085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号