从B站UP主的视频中学到的东西,想记录下来以便自己加深记忆,也欢迎大家观看,其中若有错误,欢迎各位大佬指出来>o<
视频来源如下:
c语言编程 C语言入门 c语言(C语言程序设计教程 c语言视频教程 c语言零基础入门教程 学习c语言 c语言视频教程 c语音 C语言教程 C语言编程项目 C语言_哔哩哔哩_bilibili
1、简单代码中的基本框架
#include<stdio.h> //包含一个叫stdio.h的文件,后面用到C语言所提供的函数printf(),所以说要添加include声明一下
//std--标准 stamdard input output
//int 是整型的意思
//main前面的int表示main函数调用返回一个整型值
int main () //main 主函数 -程序的入口,从这里开始执行;有且仅有一个
{
//这里写入任务
printf("hello world\n");//printf--打印函数--库函数(C语言本身提供的函数)
// \n表示换行.
return 0; //返回 0
}
2、C语言中中数据类型和全局变量、局部变量
数据类型:char--字符数据类型;short--短整型;int-整型;long--长整型;long long--更长的整型;float--单精度浮点数(用来存放小数);double--双精度浮点数。其中不同数据类型其在电脑中所占用的空间也不一样。下面一段代码可以求出不同数据类型在计算机所占用的空间,利用printf("%d/n",sizeof(...))。
全局变量与局部变量:全局变量是在代码块{}外部定义的变量,在整个工程中都可以使用;局部变量是在代码块{}内定义的变量,仅在代码块内使用。同时局部变量与全局变量的名字最好不要相同,容易产生误会。如果局部变量与全局变量的名字相同时,在使用该变量名时,局部变量赋予的值优先使用。
局部变量的作用域可理解为其所在代码块的这一整个地方,其生命周期也就是其代码块运行这段时间。全局变量的作用域是整个工程,其生命周期为整个工程的运行时间。
#include<stdio.h>
int num2=20; //全局变量--定义在代码块{}之外的变量称为全局变量
int a=100;
int main()
{
printf("%d\n",sizeof(char)); //1;一个字节--计算机中单位:bit(比特位)、byte(字节)、kb、mb、gb、、
// 一个比特位存放1/0;一个字节8个比特位
printf("%d\n",sizeof(short));//2
printf("%d\n",sizeof(int));//4
printf("%d\n",sizeof(long));//4
printf("%d\n",sizeof(long long));//8
printf("%d\n",sizeof(float));//4
printf("%d\n",sizeof(double));//8
short age =20;//向内存申请2个字节=16bit位,用来存放20;
float weight=95.6f;//默认95.6为双精度浮点数
int num1=10; //局部变量 --定义在代码块{}内的变量称为局部变量
int a=10; //局部变量和全局变量的名字建议不要相同,容易产生误会,产生bug
// 当全局变量与局部变量相同时,局部变量优先
//局部变量只能在其代码块内使用
printf("%d\n",a);
return 0;
}
//在代码中\n表示换行的意思,sizeof()是求出括号内数据的长度。
例如以下代码:给变量赋值,并求解二者之和。在该代码中涉及到scanf函数,是一个输入函数,即通过该函数可以用键盘给变量赋值。&取地址符号的意思是函数scanf并不是直接读取你所赋予的值,而是读取你所赋值的变量所在计算机中的地址,提取地址中存取的数值。
#include<stdio.h>
int main()
{
//计算两个数的和
int num1=0;
int num2=0;
int sum=0;
//输入数据--使用输入函数scanf
scanf("%d%d",&num1,&num2);//&为取地址符号
//int sum=0;
//C语言语法规定变量要定义在当前代码块的最前面
sum=num1+num2 ;
printf("sum=%d\n",sum);
return 0;
}
3、常量
常量有四种,字面常量、常属性常量、标识符常量、枚举常量
数字2、5、7等就是属于字面常量;用const修饰的变量,该变量被赋予一定值,则该变量属于一个常变量。其值就无法改变,若是重新给该变量赋值则会报错。但是由于该常变量本质还是变量,所以不可以当做常量使用。
//常量
#include<stdio.h>
int main()
{
//const-常属性
//const修饰的常变量
const int num=4;
// 3 直接写出一个数字为字面常量
printf("%d\n",num);
//num=8;
printf("%d\n",num);
const int n=10;//n是变量,但又有常属性,所以n为常变量;当作为常量的时候是不允许使用的
int arr[n]={0};//这种写法是错误的
return 0;
}
标识符常量:define定义的常量如下面代码中MAX;枚举常量--enum。
//define 定义的标识符常量
#include<stdio.h>
#define MAX 10
//4.枚举常量
//枚举关键-enum
enum Sex
{
MALE,
FEMALE,//枚举常量
SECRET
} ;//枚举常量的结构
int main()
{
int arr[MAX]={0};//初始化数组
printf("%d\n",MAX);
//enum Sex s=FEMALE;//定义变量s为FEMALE,其中s可自己重新赋值,但是MALE、FEMALE等是不允许改变的。
printf("%d\n",MALE);//0是默认值,枚举常量中,常量代表的值一般默认为0,1,2,3,,,
printf("%d\n",FEMALE);//1是默认值
printf("%d\n",SECRET);//2是默认值
return 0;
}
4、字符串
C语言中用双引号引起来的一串字符表示字符串。一般用数组来存储字符串,字符串中除却已有的字符之外还包含\0---是字符串结束的标志,隐藏在末尾,不占用字符长度也不具有含义。
转义字符:“\”,转变其原来的意思。如“abcn”表示字符abcn,但是“abc\n”表示字符abc加换行。其中转义字符为一个字符如\32与\t等。值得注意的是格式为\dd的字符d为8进制数值,将dd转换成十进制的数值,在ASCII码表中所对应的字符串就是\32所对应的字符串。格式\xdd中d为16进制的数字,同样其字符串也是按上面方法得到。
#include<stdio.h>
#include<string.h>
int main()
{
//C语言怎么表示字符串:由双引号引起的一串字符
char arr1[]="abc";//数组存储字符串
//'abc'中含有a,b,c,\0;其中\0-字符串的结束标志,隐藏在末尾只是标志,不具有含义
char arr2[]={'a','b','c',0} ;
printf("%s\n",arr1);//结果为abc,即里面有三个字符。
printf("%s\n",arr2);//结果也为abc. %s表示字符
//char arr3[]={'a','b','c'};
//printf("%s\n",arr3);//得到的是一个随机数,因为abc之后没有\0,是随机出现的字符,如果恰好遇到
\0就停止,如果没遇到继续读下去直到遇到\0。
//转义字符:转变原来的意思
// '\'是转义字符 如将\t前加\不保持其原样,表示为水平制表符
//\t--水平制表符
//printf("abc")
printf("abc\n") ;
printf("c:\\test\\32\\test.c\n");
printf("%s\n","\"") ;//打印单个双引号,避免将前面两个双引号解析成一对。
printf("%d\n",strlen("c:\test\32\test.c"));// \32也是是一个转义字符
// \dd为一个字符,为转义字符中dd表示8进制的数值,如/32中32为2个八进制的数字所代表的十进制数字值,为ASCII码值,对应的字符串
// \xdd 也是一个字符,为转义字符,dd为16进制对应的数值
return 0;
}