• 学C语言小白需要了解的一些基本知识点(基于gcc编译器)连载11篇C语言笔记(篇一)


    接下来是我在学习C语言的一些笔记,特别说明我用的是gcc编译器(Linux系统下的编译器,功能特别强大),编写程序用的是vim,与之先关的vim基本操作,我已经在我的博客更新过,建议大家去看看(里面包含Ubuntu16.04的一些基本操作),我也是编程小白,但笔记都是参照技术大牛做的,希望能帮到大家!
    希望大家在编程的路上越走越好!!!!!!
    好啦! 废话不多说,直看知识点吧

    1. 关键字
      a. 标识符:
      在程序中,使用的变量名,函数名,标号大呢个统称为标识符。
      除库函数名由系统定义外,其他都由用户自定义

      C 语言规定:
      标识符只能是字母(AZ,az),数字(0~9)和下划线组成,
      并且第一个字符不能为数字

       	int 0a; //error
       	int a0; //OK
      

      C 语言对标识符的长度没有限制,但是标识符的长度取决与机器和编译系统
      大小写是有区别的:比如:A , a
      int a; //a,A 是两个不同的变量
      int A;
      命名应尽量有相应的意义
      //以下方式为不规范命名形式
      int a, b, c ,d ;
      int a1,a2,a3,a4 … a100;

      变量命名尽量望其名,知其意!!

      命名方法:
      驼峰命名法:
      int addNum1;
      int addNum2;
      下划线分割:
      int add_num_1;
      int add_num_2;

    2. 基本数据类型
      a. 整型
      短整型:short int(short) — 2 byte %d
      整 型:int — 4 byte %d
      长整型:long int(long) — 8 byte %ld

      有符号数:signed
      无符号数:unsigned — %u

      常 量:程序运行过程中,值不可改变的量。
      变 量:用于保存数据的计算机内存单元。运行期间,其值可以发生改变
      变量名:实际上就是一个内存地址,从变量中取值,通过变量名找到相应的内存地址
      从该存储单元中读取数据。

      变量的定义:
      DataType parametersName;
      数据类型 变量名称;

       例如:
       	int a;
       	short b;
       	long num;
       	short int tmp;
      

      变量的初始化:
      a. 第一种:先定义,后初始化
      int num;
      num = 0; //num = 45; 其初始值可以任意,一般默认初始化为 零 值

       b. 第二种:定义变量的同时初始化
       	int temp = 23;
      
       变量的初始值如何确定?
       	当确定变量必须用到,但其值不确定时,一般初始化为零值
       	确定其初始值,将其初始画为该值即可。
       	其他情况,视具体使用情况而定。
      

      未初始化的变量,其值都是随机的!

      多变量的定义及初始化:
      第一种:
      int a, b, c, d;

       	int a, b, c, d = 0;	//只有 d 的值是确定的,其他值随机
       	int a = 0, b = 1, c = 2, d = 3;	//OK
       	
       	int a, b, c, d;
       	a = b = c = d = 3;	//语法上是对的,正确的表达式
       	其等价于:从右向左赋值
       		d = 3;
       		c = d;
       		b = c;
       		a = b;
       
       第二种:
       	int a = 1;
       	int b = 2;
       	int c = 3;
       	int d = 4;
      

      思考:
      以下数据哪些是合法的?
      666
      -333
      345L //long int a = 345;
      333U //unsigned int b = 333;
      123u
      3.14
      3.1415f //float pi = 3.1415;
      以上数据均为合法数据

    3. 字符型数据 — char
      字符:由但单引号扩起来的单个符号或数字或字母,称之为字符
      如:
      ‘a’, ‘A’, ‘9’, ‘@’, ’ ', ‘,’

      字符型变量存储时,存储的是对应的 ASCII 值
      字符型数据可以和整型数据进行相互赋值,通过 ASCII 码值进行操作

      字符型变量的定义:
      DataType Name;
      占位符:%c,
      字节数:1 byte

       char ch;
       char a = '0';
       ch = 'a';
      

      putchar()/getchar()
      getchar():只能接收单个字符,输入数字也按字符处理
      当输入多个字符时,只取第一个字符:
      char ch = ‘0’;
      ch = getchar();

      putchar():输出单个字符
      putchar(ch);
      putchar(‘G’);

      转义字符:
      ‘ ’:换行符,下一行行首
      ‘ ’:制表符(tab)
      ‘’:回退
      ‘ ’:回车,回到当前行行首

      练习:
      使用 getchar() 获取单个字符
      使用 putchar() 输出: China 并换行!!

       #include<stdio.h>
       	int main()
       	{
       		putchar('C');
       		putchar('h');
       		putchar('i');
       		puthcar('n');
       		puthcar('a');
       		ptuchar('
      ');
       		return 0;
       	}
      
    4. 输出/输入
      输出:printf()
      a. 格式化输出:printf()
      printf("格式化字符串");

       printf("Hello, World!
      ");
      

      b. 参数
      printf(“格式化列表”,参数列表)

       printf("%d -- %d -- %d
      ", a, b, c);	
      

      输入:scanf();
      scanf(“格式化列表”, 参数列表);

      使用:
      scanf("%d", &a);

      scanf(“a = %d”, &a);

      scanf("%d %d", &a, &b);
      &:区地址符号
      &a:表示 a 变量的地址
      %d:占位符,不同类型变量,占位符不同

      该种写法,输入数据时,两数之间可用空格,tab键或回车隔开,

      scanf() 获取数据后,会产生游离回车符,因此scanf后紧跟一个
      getchar() 用于吸收游离回车符,防止对后续输入 char 类型数据时造成影响!!!

      scanf() 的格式化列表中,不能使用 , 否则会造成缓冲区问题,数据无法正确获取!!

    5. 浮点型数据
      单精度:float 精确度 6 位左右 4 byte %f
      双精度:double 精确度 15 位左右 8 byte %lf

      科学计数法:
      men:
      mEn:
      m:可以是整数,也可以时小数,也可以负数,也可以是正数
      n:只能是整数

      3.14E2 = 3.14 * 10^2
      2.34e-3 = 2.34 * 10^-3

      其他占位符:
      %g:省略末尾不必要的 0
      %e:

    6. 占位符问题:
      数据类型 printf scanf()
      short/int %d %d
      long %ld %ld
      char %c %c
      float %f %f
      double %f/%lf %lf

      其他占位符号:
      %g:省略浮点型数据末尾不必要的 0
      %e:指数形式显示浮点型数据
      %u:无符号数的占位符
      %o:八进制数
      %x/%X:十六进制数
      %p: 地址

      如何区分:八进制数, 十进制数,十六进制数???
      八进制:以 0 开头的数据,(0~7)
      十六进制:以 0x 或 0X 开头的数据(09,af(A~F))

      0123
      0567
      0129 //Error
      123
      0x123
      0xfff
      0xefg //Error
      456
      345f
      4.23f
      2345L

    千里之行,始于足下!
  • 相关阅读:
    VS2008找不到MFC90d.dll错误解决方法
    字符编码之间的转换
    java 中使用RSA非对称性加密解密
    java eclipse中使用wsdl生成soap 的客户端代码
    java 打印空心菱形的两种实现
    Chrome 快捷键
    电脑常用快捷键
    VS2013常用快捷键
    Eclipse常用快捷键
    java 使用for循环打印杨辉三角形
  • 原文地址:https://www.cnblogs.com/MINAIot/p/13041020.html
Copyright © 2020-2023  润新知