c语言常见概念

举报
凯子坚持C 发表于 2024/10/20 18:36:00 2024/10/20
【摘要】 1.main函数int 代表的是整型,整数都属于整型类型(integer)Int 表示main函数结束的时候回返回一个整数,return 0main函数式程序的入口,main有且仅有一个,即是一个项目中有多个.c文件,但只能有一个main函数(因为程序的入口只有一个)切记不能忘掉main后面的括号main的多种写法main函数的位置可以在任意位置,但是如果在主函数之中调用了哪些函数,必须在m...

1.main函数

int 代表的是整型,整数都属于整型类型(integer)

Int 表示main函数结束的时候回返回一个整数,return 0

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

切记不能忘掉main后面的括号

main的多种写法

main函数的位置可以在任意位置,但是如果在主函数之中调用了哪些函数,必须在main函数前对其所调用函数进行生命或包含其被调用函数的头文件。

C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字

define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是C语言中的内容。

int、struct和continue都是C语言中包含的关键字。

当变量表达式的内容与某个case后的常量相等后,就执行该case下的语句,break表示该case以后的内容不会执行,如果没有跟break,会继续执行当前case之后的case分支。

当变量表达式的内容没有与那个case匹配,就会执行default下的内容。

switch中常用的关键字:case 、break、 default,当然case中语句比较复杂时,可能会用if进行判断。

continue是用来结束本次循环的,而switch不是循环,因此其中不能使用continue关键字。

2.变量

局部变量和全局变量

局部变量:大括内部

全局变量:大括号内部

当全局变量和局部变量数值相同发生冲突时,局部变量优先,不建议将全局变量和局部变量的数值写成一样

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

创建变量的同时给它一个值,叫做初始化 ,再次改变变量的值叫做赋值

生命周期

局部变量生命周期:进入作用域生命周期开始,出作用域生命周期结束

全局变量生命周期:整个程序的生命周期

常量(不变的量)

'w';//字符(单引号)
"abc";//字符串(双引号)
 30;
3.14;
const int a = 10;//在C语言中,const修饰的a,本质是变量,但是不能被修改,有常量的属性。
#include<stdio.h>


 int main()
 {
     const int a = 10;(将a锁定,a只能是10)
     a = 20;
     printf("%d\n",a);

     return 0;

 }
 #define MAX 100//定义最大值为100(MAX就是define定义的标识符常量)

 int main()
 {

     printf("%d\n", MAX);
     int a = MAX;//(输出结果中a的大小为100)
     return 0;
 }
//枚举常量
 enum Color
 {
     //枚举常量 
     RED,
     GREEN,
     BLUE,
 };

 int main()
 {
     //三原色 
     //RED GREEN BLUE 
     int num = 10;
     enum Color c = RED;

     return 0;
 }

字符串

c语言里面没有字符串类型

由双引号引起来的一串字符成为字符串字面值,简称字符串(常量字符串)

字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不作为字符串内容,字符串的末尾隐藏着\0, \0为结束标志 %s 打印字符串

\0是字符串的结束标志

字符串可以存放在字符数组中

%d 打印整型

%c 打印字符

%f 打印float(浮点数)类型的数据

%lf 打印double类型的数据

\n//换行
\0//结束打印 
\?//在书写连续多个问号时使用,防止他们被解析成三个字母词    printf("%s\n", "(are you ok\?\?)"); 
\'//用于表示字符常量'                             printf("%c\n", '\'');//打印单引号
\"//用于表示一个字符串内部的双引号                    printf("\"");
\\//用于表示一个反斜杠,防止它被解释为一个转义序列符printf("abcd\\0ef");前面的斜杠时后面的斜杠一起组成了转义字符,所以后面的斜杠没有和0组合成结束标志,输出结果为abcd\0ef
\a//警告字符,蜂鸣
\b//退格符 
  printf("abcd%bef\n");//结果为abcef
    printf("abcdef\n");//结果为abcdef
对比发现少了d,所以\b的作用是删去前面的一个字符,往前面退一格

\f//进纸符
\r//回车  光标移动到同一行的开头
\t//水平制表符
\v//垂直制表符
\ddd//ddd表示1~3~个八进制的数字。比如:\130,表示x,参考ASCII表,将\后的八进制数字转换成十进制数字,八进制里面没有8
\xdd//dd表示2个十六进制数字。如:\x30 0

打印方式

printf("abc");
printf("%s\n","abc");

printf("%d\n", strlen("c:\test\628\test.c"));输出结果为14,因为

\t为一个转义字符

\62为1个转义字符,8进制的范围是0~7,没有8

\t为一个转义字符

注释

 /*
 int main()
 {

     printf("%d\n", MAX);

     return 0;
 }
*/ 
在代码的首尾添加/*和*/        或者在每行代码前面添加//
  或者全选然后添加/

ASCII码值

小写字母的ASCII码值-32就能得到对应的大写字母的ASCII码值

小写字母的ASCII码值比对应的大写字母的ASCII码值更大的。

3.printf和库函数

printf是库函数,是c语言的标准库中提供的现成的函数

功能:在屏幕上面打印信息

printf=print+format 意思就是按照格式打印信息

%d:打印整数

%c:打印字符

%f:打印小数

%s:打印字符串

双引号括起来的一串字符被称为自字符串

printf("haha\n")//在末尾添加\n 换行
printf("%d\n")//添加%d即为打印整数
printf("%c\n",'p')//打印字符为%c,单引号括起的即为字符

若要使用printf,则需要引入头文件#include

std -standard -标准

i -input --输出

o --output --输出

stdio.h --标准的输入输出头文件

单引号括起来的是字符,只存在'a',不存在'ab'

4.关键字

程序员在创建标识的时候不能和关键字重复

关键字也不是我们自己能创建的

c语言有32个关键字

1.auto break case char const continue default do double else enum   extern
2.float for goto if int long register return short signed sizeof   static
3.struct switch typedef union unsigned void volatile while

5.语句和语句分类

c语言的语句分为5大类:

1.空语句

2.表达式语句

3.函数调用语句

4.复合语句

5.控制语句

控制语句

   ;//一个分号即是一个空语句
  int a = 20;
  int b = 0;
  b = a + 5;//表达式语句
printf("hehe\n");//函数调用语句
{
//成对的大括号中的代码就构成一个代码块,也被称为复合语句

}

6.ASCII码值

1.字符A~Z的ASCII码值从65~90

2.字符a~z的ASCII码值从97~122

3.对应的⼤⼩写字符(a和A)的ASCII码值的差值是32

4.数字字符0~9的ASCII码值从48~57

5.换⾏ \n 的ASCII值是:10

6.在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察

printf("%c\n",'a');
printf("%c\n",97);
两串代码输出结果一样都为a,可以参考ASCII表



7.strlen字符串长度

strlen (库函数,使用的话需要包含头文件),计算字符串str的长度,直到空结束字符//求字符串长度的函数

'a'//字符(单引号)
 "abc"//字符串(双引号)
  char//字符类型
  char arr1[] = "abcdef";将abcdef存储起来。监视面板有一个'\0'.总共7个字符
  char arr1[] = ['a','b','c','d','e','f'];监视面板只有6个字符,没有\0
  printf("%s\n",arr1);
  printf("%s\n",arr2); 
##arr1字符串里面有\0可以停下来。但是arr2字符串里面没有\0,所以会在存储空间一直解析下去,直到碰到\0才会停止。若在arr2中添加'\0'则arr1=arr2。由此可以知道\0的重要性
int len = strlen("abc");等号后面的将长度算出,然后通过int输出
printf("%d\n",len);再将数据打印出来

#include<string.h>//一定要添加的头文件

int main()
{
    //char arr1[] = "abcdef";
    //char arr2[] = {'a','b','c','d','e','f'};
    //printf("%d\n",strlen(arr1));//输出结果为6
    //printf("%d\n",strlen(arr2));//输出结果为13。因为arr2里面的字符走了好久才遇到\0,才结束运算,若在arr2中添加字符'0',则arr1长度等于arr2



    int len = strlen("abc");
    printf("%d\n", len);//输出结果为3

    return 0;

}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。