唐伯虎 发表于 2021-7-8 19:23:12

C语言学习笔记(二)

  
(一)字符串和字符
  1.字符串:
  这种由双引号引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。(注意:字符串后面天然带有一个\0,
  在计算字符串长度的时候 \0 是结束标志,不算作字符串内容)。比如“abc”,后面其实隐藏了一个\0.

  2.字符:
  字符一般由单引号引出。比如'a','b','c'
  3.打印字符串以及字符

  结果如图。为什么第一个会直接输出abc,第二个除了abc外,后面还有乱码呢?
  因为,在字符串“abc”中,其后面天然有\0(虽然藏起来了,但就是有),作为计算字符串长度的终止符,其本身不计入长度。但是在arr2里面,只有字符,没有\0,所以电脑没有检测到终止符,就会一直输出后面的随机值,也就出现了乱码。
  所以,要想让arr2也打印成abc,可以这样写:

  4.字符串长度的计算
  引出一个新函数:strlen函数,用于计算长度。strlen=string length,在使用之前,要在前面声明#include<string.h>

  因为第二个字符构成的集合中,没有\0,随意会继续计算随机数值,直到出现\0才会停止。这里的15,表示第16位有\0.

  加上\0之后,计算机停止计算。

(二)转义字符


  这里重点讲解一下\ddd和\xdd两种转义字符
\ddd:ddd指的是1-3个8进制数字
  比如说:如果打印\32,后面3和2是两个八进制数字。换成十进制是:3*8^1+2*8^0=26,则对应到ASCII码表所对应的字符,然后输出。
  在计算长度时,\32记一个单位长度即可。
  但是要注意,八进制中只有0-7,如果出现了8,那么不符合语法规矩,不构成转义字符,比如\382,直接输出\382。计算长度记4个单位。
\xdd:dd表示两个十六进制的数字
  比如\x61,转换成十进制就是:6*16^1+1*16^0=97,输出ASCII对应的值
一道题目:计算字符串“c:\test\328\test.c”


(三)注释语句
  注释有两种风格:
  C语言风格的注释 /*xxxxxx*/
  缺陷:不能嵌套注释
  C++风格的注释 //xxxxxxxx
  可以注释一行也可以注释多行



(四)选择语句和循环语句
1.选择语句:

  写成代码:涉及scanf语句和if语句
  #define _CRT_SECURE_NO_WARNINGS 1
  #include<stdio.h>
  int main()
{
    int input=0;
    printf("你考上了大学\n");
    printf("大学四年中是否要好好学习呢?(1/0)>:");//>:代表提示符,要在后面输入一个数字
    scanf("%d",&input);
    if(input==1)//if语句后面不用跟冒号哦,如果带了冒号,那后面的else就无法识别这个if了
        printf("好offer\n");
    else//两个都带冒号也不行哦
        printf("卖红薯\n");
    return 0;
}
  输出结果如下:

循环语句:

  代码如下:这里引入while和if语句。如果line值小于20000,则进入上一个循环,大于20000,进入下一个。


(五)函数
  我们以一个简单的加法代码为例:
  #define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int a=0;
    int b=0;
    int sum=0;
    printf("请输入两个数字,电脑会将他们求和");
    scanf("%d%d",&a,&b);
    sum=a+b;
    printf("sum=%d\n",sum);
    return 0;
}
  这样可以运行,但是还有另外一种写法:先将加法函数封装起来,独立于主函数之外。
  #define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
  int Add(int x,int y)//自定义一个加法函数,里面有整形Z和整形Y,将其封装起来,独立于主函数之外。
{
    int z=x+y;
    return z;
}
  int main()//主函数部分和原来的写法类似
{
    int a=0;
    int b=0;
    int sum=0;
    printf("请输入两个数字\n");
    scanf("%d%d",&a,&b);
    sum=Add(a,b);
    printf("sum=%d\n",sum);
    return 0;
}
  运行结果如下:


(六)数组
  C语言中给了数组的定义:一组相同类型元素的集合。
  int arr = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素。

  
文档来源:51CTO技术博客https://blog.51cto.com/u_15294666/3017678
页: [1]
查看完整版本: C语言学习笔记(二)