C语言的基本知识点(部分)

今天是学习了C语言

总结一下知识:

一、初识C语言程序

#include<stdio.h>

int main()

{
   printf("hello, C!");        
   return 0;
}

在上述程序(简单的)中 :

1. main()  是程序的主函数主函数是一个程序的入口,在一个工程中有且只有一个主函数

因此,若要编写一个程序,主函数 很重要。

* 注:* 1. 在一个程序中主函数只能有一个 ;

       * 2. 在一个项目中(即使有多个文件)也只能有一个主函数;

2. printf()  是一种库函数,其作用是在屏幕上打印设定的内容;( 注:若要使用一种库函数程序中必须包含其对应的头文件 )


二 、 数据类型(目前仅学到的)

数据类型名称具体类型        类型大小        
char字符数据类型1
short短整型2
int整型4
long长整型4
long  long更长的整型8
float单精度浮点数4
double双精度浮点数8

1. 其中 sizeof() 也是一个库函数,用来计算一个数据类型的大小。

如 :sizeof (int)==4;(意思是 Int 类型的变量大小为4个字节);、

#include<stdio.h>
int main()
{
   printf("%d",sizeof(int));
   return 0;
}

2. 计算机中的单位

单位               单位间转换止
bit (比特位)1 个 bit位存放 1 个二进制位
byte(字节)= 8 bit
KB= 1024 byte 
MB

= 1024 KB

GB

= 1024 MB

TB= 1024 GB
PB= 1024 TB

(注:除以上单位外还有其他单位就不一 一列出了;)

三,变量和常量

1. 定义变量:变量类型 + 变量名字

如下代码(定义一个 int 类型的变量  a ) :

#include<stdio.h>
int main()
{
   int a ;
   return 0 ;

}

 2. 变量分类  (变量分为局部变量全局变量)

局部变量:定义在大括号内部的变量

全局变脸:定义在大括号外部的变量

#include<stdio.h>
int b;           //此处b为全局变量
main()
{
   int a;        //此处a为局部变量
return 0;

}

全局变量局部变量命名冲突时,局部变量优先 。

(注 : 即使编译器不会报错,但是不建议在编程时这样做)

如 :

3变量的作用域和生命周期

局部变量的作用域 :定义变量的局部范围,如图;

a 变量的作用域是红圈的范围;

 全局变量的作用域是整个工程。

(前提是跨文件使用全局变量时要提前声明)

4、变量的生命周期

局部变量的生命周期是其作用域,进入作用域生命周期开始,;

全局变量的生命周期是与程序的生命周期相同       

(注 :程序运行时全局变量被创建,程序运行结束时全局变量被销毁,因此,可以称全局变量与程序共存亡)。

就今天就先到这里;See  you  ! 

_____________________________________________________________________________ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

BACK  !  !  !

更新2021年12月12日:

一、常量

1、常量的种类:字面常量,字符常量,字符串常量,标识符常量,枚举常量 等;

           ①字面常量:例如:“2” 、“3"、”2 . 09“等 ;

           ②字符常量:' a '   ' b '  等;

           ③字符串常量:" sddf "  " abc " 等;

(前三类较好理解,后两个比较特殊)

           ④标识符常量: 标识符量是指在C语言进行预处理时定义的常量

               

#include <stdio.h>
#define M 100;
main()
{
  printf("%d",M);
  return 0;
}

             如上代码中 , 通过预处理命令 #define 定义了一个标识符常量 M (这个标识符常量M会被编译器识别,并在主函数中应用  #define M 100  就相当于定义了一个常量 M 且 M 的值为100)

            ⑤枚举常量

                这里是C语言中一个特殊类型:enum —— 枚举类型;

#include<stdio.h>
enum  sex 
{   Male,
    Female
}
main()
{
   printf("%d",Male);
   return 0;
}

            如上图,Male与Female是我定义的两个枚举变量;在enum类型中枚举变量Male默认的值为 0 ,Female默认值为 1 。 

二、字符串

1、定义字符串:在C语言中定义字符串有两种方式,如下:

#include<stdio.h>
main()
{
   char num1[] = {"abc"};        
   char num2[] = {'a' ,'b','c'};
   
   return 0;
}

这两种定义的方法区别在于用strlen() 函数求其长度时:

首先介绍strlen()函数的作用,strlen() 用来求字符串的长度(每一个字符串的尾部固定有一个字符  ' \0 ' 作为其结束的标志)strlen会读取字符串中 ' \0 ' 前的每一个字符,然后求出其长度 。

① 第一种:

char num1[] = {"abc"} ; ,由于这种定义方式默认尾部有 ' 0 ' ,所以 strlen ()求出其长度是三   

② 第二种:

char num2[] = {'a' ,'b','c'} ; strlen () 因为字符串num2没有 ' \0 ' 作为结束的标志,所以求得其长度为随机值。

三、C语言中的注释方式

#include<stdio.h>
main()
{
   int a = 2;    //定义了一个int类型的变量,并赋值为 2     <--这句话是注释
   return 0 ;
}

注释方式有两种:

1、//注释内容(推荐这种注释方式)

2、\*注释内容 * \

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_______________________________________________________________________________

更新:2021年12月16日

一、scanf()

1、scanf 函数在调用 或 读取时,会返回不同的值;

     成功时:返回 1;失败时 :返回 EOF

    

 二、操作符

1、分类单目操作符双目操作符三目操作符

①  ++和--

前置++/--:先++/--再使用;

后置++/--:先使用再++/--;

如下图:

sizeof属于单目操作符

逻辑操作符  ! 和 &&和 | |

   :在C语言中0表示假;非0表示真(非0可以用 ' !0 ' 来表示)

   &&:表示并且;

    | | :表示或者;

条件操作符 :(表达式1)?(表达式2):(表达式3)

 如果表达式1成立 则执行表达式2,若表达式 1 不成立 则执行表达式 3

下表引用操作符[ ]

引用数组中对应元素事用到 , 如下;

三、逗号表达式

1、基本形式 : (表达式1,表达式2)

2、用法:  当程序 运行到逗号表达式是会从左到右依次执行表达式 1和2,最后整个逗号表达式的值为表达式2的值(即,括号内最右端表达式的值)

 如下:

四、C语言中的关键字(简单了解一下)

 1、typedef  ——  类型重定义

       可以在编写程序时将某些 数据类型 名称 进行改变(使其易于编写)

如下程序中:利用 typedefint 类型重命名为 u i ;

2 、static  -----  静态化 

        static 修饰局部变量( 改变局部变量的储存位置 其作用域不改变)

如;   代码 1: ( 在代码1 的 while 循环中 变量b是在while 循环中定义的,其生命周期就是while 每次循环的开始每次循环的结束因此在程序运行的过程中变量b被创建了三次,每次的值均为1,且每次循环结束后被销毁,所以打印三个 1 )

            

         代码 2 :

         

(因为变量b被 static 修饰,将其储存位置  由储存局部变量的栈区  改变为储存静态变量的静态区,使得程序中 while循环 第二次运行时会忽略 " static int b = 0; "这行代码,并以上一次b的值继续运行)

         

       static 修饰全局变量

代码1:(如图,全局变量 a 在不同的文件中仍可以发挥作用)

 (被static 修饰的局部变量仅能在本文件内使用,因此编译器会报错)如图;

          static 修饰函数

   ( 函数和全局变量有类似的性质可以跨文件引用 ,而static修饰的函数则只能在本文件即函数定义的文件中使用,不可以跨文件使用,使用上感觉其作用域变小了

五 、C语言中的 宏定义 

      1. C语言中用 #define 定义常量和宏。

      2. 宏定义常量 :

   

      3.宏定义

        这里运用宏的方法类似与一种格式的替换,如下图中  :

通过运用#define 的方式将 int k = ( 7>9 ) ? ( 7 ) : ( 9 ) 转换为一个更为简洁的写法 ,即:

int k = MD (7, 9) ; 

     

 六 、指针(简要了解)

     1. 在计算机中内存被分为许多小的部分(类似于现实生活中的房间);每个小的部分可以用来存放 各种变量(相当于房间中的人事物);而为了能分辨各个内存单元,就将每个内存单元进行编号(类似于房间上的门牌号);在计算机中这每个编号就是一串十六进制数字;

而这种编号统称为地址 。

     2. 指针变量:用来存放一个变量的地址。

如图:变量 a 的地址被储存在指针变量 p 中;因此打印变量 p 是一个地址(一串十六进制数字)

 (注:定义指针变量的格式以上图为例:int* p = &a;  其中“ * ”是 解引用操作符,代表将要定义一个指针变量,“ & ”是取地址操作符代表取一个地址,而 int 代表被指针变量(p)储存的地址(&a)的变量(a)的类型(int) “ %p ”是用来打印地址的 。)

      3. 指针变量的用处: 通过指针变量所储存的地址进而快捷的找到一个变量。如:

(注:其中 *p 代表通过 p 存放的地址进而找到 p 指向的内容 即 *p == a )

       4. 指针的大小:

由于指针变量储存的是地址,因此其大小与地址的大小相同;在32位计算机中指针的大小为 4个字节,在64位计算机中指针的大小为 8 个字节。

七 、结构体类型

      1. 定义结构体类型;如图:

定义了一个MC的结构体类型,并定义了一个MC类型的变量 Marry 。 


#include<stdio.h>
struct MC
{
  char name[10];
  int age;
  char sex;
}
main()
{
  struct MC Marry = {"Marry",10,'x'};
  printf("Marry:\nname:%s\nage:%d\nsex:%c",Marry.name,Marry.age,Marrt.sex);
}

注:打印结构体类型变量有两种方法:①:Marry . name

②其中M为结构体变量Marry的指针;

     2. 结构体变量的输入(三种形式其中M为Marry 的指针)

scanf("%s %d %c", &(M->name),&(Marry.age),&(Marry.sex));
scanf("%s%d%c", Marry.name,&Marry.age,&Marry.sex);
	scanf("%s %d %c", &(M->name),&(M->age),&(M->sex));

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                                                                                                          ending。。。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值