c语言学习中:

vs22快捷键:ctrl+f5运行,f10监视,代码注释(Ctrl+k+c),或者取消注释(Ctrl+k+u)。

ASCII

• 字符 A~Z 的ASCII码值从65~90
• 字符 a~z 的ASCII码值从97~122
• 对应的大小写字符(a和A)的ASCII码值的差值是32
• 数字字符0~9的ASCII码值从48~57
• 换行 \n 的ASCII值是:10
• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察

参考:https://zh.cppreference.com/w/cpp/language/ascii

main函数
每个 C 语言程序不管有多少行代码,都是从main 函数开始执行的, main 函数是程序的入口,
main 函数也被叫做:主函数。main 前面的int 表示 main 函数执行结束的时候返回一个整型类
型的值。所以在main 函数的最后写return 0; 正好前后呼应。

注意:

• main函数是程序的入口
• main函数有且仅有一个
• 即使一个项目中有多个.c文件,也只能有一个main函数(因为程序的入口只能有一个)

printf 和 库函数
在上面的代码中有一句代码如下:
1 printf("hello C\n");
代码中使用了printf 函数,实现了在屏幕上的信息的打印。
 printf 是一个库函数,它的功能是在标准输出设备(一般指屏
幕)上进行信息的打印。上面的代码是使用 printf 函数打印字符串。只要把想要打印的一串字符放
在双引号中并传递给printf函数就可以打印。
printf函数也可以用来打印其他类型的数据,比如:

#include <stdio.h>

{int n = 100;
          printf("%d\n", n); //printf打印整型
          printf("%c\n", 'q'); //printf打印字符
          printf("%lf\n", 3.14); //printf打印双精度浮点型
          return 0
}

书写中:

'a'为字符;  “asdfg”为字符串;  “”空字符串占位符:

字符:%c,字符串:%s,(有符号)整形:%d,(无符号)整型%u,小数:%lf
        

#include <stdio.h>
int main()
{        
        printf("hello\n");
        printf("%s\n", 'hello');  //相同作用
        return 0;
             }

C语言字符串中一个特殊的知识,就是在字符串的末尾隐藏放着一个\0 字符,这个\0 字符是字符串
的结束标志!!!


数组--可以存储一组数据
        

#include <stdio.h>
int main()
          {
            char arr1[] = "abc";          //数组中存放:a,b,c,\0
            char arr2[]={'a','b','c'};   //数组中存放:a,b,c
            printf("%s\n", arr1);//正常
         printf("%s\n", arr2);   //因为无 \0,后面的数据不知道,找不到\0就继续打印导致随机值出现
            return 0;
            }


strlen统计字符串长度:string length
      

#include <stdio.h>
#include <string.h>
int main()
        {
         int len = strlen("sbcdef");//此处len仅为命名,换成任意名称都行,如:lll(len表示度)
         printf("%d\n", len);
         return 0;
        }


此时发现输出结果为6,说明strlen是在统计\0之前的字符个数        

#include <stdio.h>
#include <string.h>
int main()
         {
           char arr1[] = "abc";
           int len1 =strlen(arr1);
           printf("%d\n", len1);  //结果为3
           char arr2[] ={ 'a', 'b', 'c'};
           int len2 =strlen(arr2);
           printf("%d\n", len2);//结果为随机数 eg.68
           return 0;
          }


转义字符

•\? :在书写连续多个问号时使用,防止他们被解析成三字母词,在新的编译器上没法验证了。eg.写\?\?)
• \' :用于表示字符常量'
• \" :用于表示一个字符串内部的双引号
• \\ :用于表示一个反斜杠,防止它被解释为一个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发生。
• \b :退格键,光标回退一个字符,但不删除字符。
• \f :换页符,光标移到下一页。在现代系统上,这已经反映不出来了,行为改成类似于\v 。
• \n :换行符。
• \r :回车符,光标移到同一行的开头。
• \t :制表符,光标移到下一个水平制表位,通常是下一个4/8的倍数。
• \v :垂直分隔符,光标移到下一个垂直制表位,通常是下一行的同一列。

转义字符参考:https://zh.cppreference.com/w/c/language/escape

#include <stdio.h>
#include <string.h>
int main()
{
	printf("%c", '\'');   //将中间'转义
		return 0;
}
#include <stdio.h>
#include <string.h>
int  main()
{
	printf("c:\\test\\bbc\\test.c");//防止路径中的\将字符转义
    return 0;
}
int main()
{   
	printf("sasdsd\b\n");//注意若\b后不换行自己衔接打印,则会吞掉最后一个字符
	printf("sasdsd\n");
	printf("\b");
	printf("sasdsd\b");
	printf("sasdsd");
	return 0;
}
int main()
{
	printf("a\tbc\tdef\thyjk\t\n");
	printf("aa\tbbb\tcccc\tddddd\t\n");  //\t用于对齐
	return 0;
}

下面2种转义字符可以理解为:字符的8进制或者16进制表示形式
• \ddd :d d d表示1~3个八进制的数字。 如: \130 表示字符X,/081不行 
• \xdd :d d表示2个十六进制数字。 如: \x30 表示字符0
\0 :null 字符,代表没有内容, \0 就是\ddd 这类转义字符的一种,用于字符串的结束标志,其
ASCII码值是0.
进制:130--十进制:1:10的二次方  3:10的一次方  0:10的0次方
                  --八进制;1:8的二次方    3:8的一次方    0:8的0次方

int main()
{
    
    int len1 = strlen("c:\test\130\abc\test.c");//结果:16
    int len2 = strlen("c:\test\180\abc\test.c");//结果:18  \1算一个整体

    printf("%d\n", len1);
    printf("%d\n", len2);
    return 0;
}


C语言中的语句可为以下五类:

• 空语句
• 表达式语句
• 函数调用语句
• 复合语句
• 控制语句

#include <stdio.h>
int main()
{
;//空语句
return 0;
}
#include <stdio.h>
int main()
{
int a = 20;
int b = 0;
b = a + 5; //表达式语句(表达式的后边加上分号)
return 0;
}
#include <stdio.h>
int Add(int x, int y)
{
return x+y;
}
int main()
{
printf("haHAHA\n");//函数调用语句
int ret = Add(2, 3);//函数调用语句
return 0;
}

复合语句
复合语句其实就是代码块

控制语句

用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选
择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。
可分成以下三类:
1. 条件判断语句也叫分支语句:if语句、switch语句;
2. 循环执行语句:do while语句、while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句。


注释(//或者/*    */)
不管是哪一种注释,都不能放在双引号里面。
双引号里面的注释符号,会成为字符串的一部分,解释为普通符号,失去注释作用。
注释会被替换
编译时,注释会被替换成一个空格,所以min/* 这里是注释*/Value 会变成min Value ,而不
是minValue 。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐