首页 > 其他分享 >C语言#初识C语言 总结

C语言#初识C语言 总结

时间:2023-02-09 17:00:48浏览次数:37  
标签:总结 10 main return int C语言 初识 printf include

1、数据类型

char-字符类型、int-整形、short-短整型、long-长整形、long long-更长的整形、float-单精度类型、double-双精度类型、

2、常量、变量、全局变量、局部变量

常量是固定不变的值。 变量是可以变换的值。

#include<stdio.h>
int main()
{
	int a=10;
	//这里的a就是变量
	//数字10就是常量
	return 0;
}

在变量中可分为全局变量和局部变量 全局变量是指定义在{}之外的变量。 局部变量是指定义在{}之内的变量。 ==注:局部变量的权重比全局变量高。例如局部变量和全局变量的变量名相同,但值不同。同时输出时将输出局部变量的值。当局部和全局的变量名相同也会更容易出现bug,所以尽可能不要变量名相同。

3、常量

常量可分为字面常量,const修饰的常变量,#define标识符常量,enum枚举常量 字面常量

#include<stdio.h>
int mian()
{
	int a=10;
	//a和10就是我们常见的普通变量和常量。
	3;
	//这里的3就是字面常量
	return 0;
}

const 修饰的常变量

#include<stdio.h>
int mian()
{
	const int a=10;
	//在变量的最前面添加const,使得变量增加的常属性,从而无法修改变量的值。
	num=20;
	printf("%d\n",num);
	//此时输出时,20将无法替换掉10,并且提示报错。
	return 0;
}

#define 标识符常量

#include<stdio.h>
#define add 10;
int mian()
{	
	int a=add;
	printf("%d\n",a);
	return 0;
}

enum 枚举常量

#include<stdio.h>
enum
{
	red,
	yellow,
	blue,
	//;输出结果是0 1 2 以此类推。
};
int mian()
{
	enum color c=red;
	printf("%d\n",red);
	return 0;
}

4、字符串+转义字符+注释

字符串 字符串是指有多个字符组成的 注:字符串输出时需要使用%s进行输出。 strlen 计算字符串的长度

#include<stdio.h>
int main()
{
	int arr[]='abc';
	printf("%s\n",arr);

	int arr[]='a','b','c','\0';
	printf("%s\n",arr);
	pritf("%s\n",strlen(arr));
	return 0;
}

\0就是一个转义字符,代表这字符串的结束,但并不能算做字符串内容。

\ddd、\x1,=dd \ddd是指/后面是三个八进制的数字 \xdd是指/x后面是两个十六进制的数字

#include<stdio.h>
#include<string.h>
int main()
{
	printf("%c\n",strlen("c\test\32\test.h“));
	printf("%c\n",strlen("c\test\x32\test.h"));
	return 0;
}

\ddd是指先由八进制转换为十进制后,在标准ANSII码中查找对应字符,然后输出 \xdd是指先由十六进制转换为十进制后,在标准ANSII码中查找对应字符,然后输出 注:在\后出现的第一个字母,会被认为是转义字符。

::: hljs-center

ACSII表.png

常见的转义字符.png

:::

注释 注释有两种风格/……/和// //是c++的注释风格,可以注释单行或多行 /……/是c的注释风格,缺陷是不能嵌套注释

5、选择语句、循环语句

if()else

#include<stido.h>
int main()
{
	int a=0;
	if(a<5);
		printf("a小于5\n");
	else
		printf("a大于5\n");
	return 0;
}

while()

#inlcude<stdio.h>
int main()
{
	int a=0;
	while(a<5)
	{
		a++;
		printf("a=%d\n",a);
	}	
	if(a=5)
		printf("a是6\n");
	return 0;
}

6、函数

add[]-自定义函数

#include<stdio.h>
int add(int x,int y)
{
	z=x+y;
	return z;
}
int main()
{	
	int a=10;
	int b=20;
	int jg=z(a,b);
	printf("%d\n",jg);
	return 0;
}

7、数组

add[]

#include<stdio.h>
int main()
{
	int add[]={1,2,3,4,5,6,7,8,9};
	    //下标:0,1,2,3,4,5,6,7,8
	printf("%d\n",add[2]);//这是输出add数组中指定的某一个数字。输出时按照下标进行输出
	return 0;
}

8、操作符

算术运算符 + - * / % 移(二进制)位操作符 >> <<

#include<stdio.h>
int main()
{
	int a=1;
	int b=a<<1;
	//这句话的意思是a的二进制位向左移一位,再将值赋给b。
	printf("%d\n",b);
	return 0;
}

(二进制)操作符 &按位与 计算方法:0遇到0结果为0.1遇到1结果为1,1遇到0结果为0。

|按位或 计算方法:0遇到1结果为1,1遇到1结果为1,0遇到0结果为0

^按位异或 计算方法:0遇到1结果为1,1遇到1结果为0,0遇到0结果为0

赋值操作符 = += -= /= &= ^= |= >>== <<== 这些赋值操作符也叫做复合操作符。

==在c语言中非0代表真,0代表假== !逻辑操作符 !的意思是将非0数的数值变成0,0变成1

#include<stdio.h>
int main()
{
	int a=10;
	int b=!a;
	printf("%d\n",b);
	return 0;
}

~ 对一个数的二进制按位取反

#include<stdio.h>
int main()
{
	int a=0;
	int b=~a;
	printf("%d\n",b);
	return 0;
}

::: hljs-center

原码-反码-补码的计算过程.png

::: -- 前置、后置 - - ++ 前置、后置 ++

#include<stdio.h>
int main()
{
	int a=10;
	int b=--a;
	int b=a--;
	int b=++a;
	int b=a++;
	return 0;
}

当- -或+ +在a前面时,需要a先-1或+1,再将a的值赋给b 当- -或++在a后面时,需要a先将值赋给b,再将-1或+1

(类型)强制类型转换

#include<stdio.h>
int main()
{
	int a=(int)3.14;
	return 0;
}

使用()进行类型强制转换,()中放入int,将3.14的双精度转为整形。

关系操作符

,>=,<,<=!=,== !=用于测试不相等 ==用于测试相等

逻辑操作符 &&逻辑与

#include<stdio.h>
int main()
{
	int a=10;
	int b=20;
	int jg=a&&b;
	printf("%d\n",jg);
	return 0;
}

&&逻辑与的意思是指:a是非0吗?b也是非0吗?两边数值都是非0的情况下输出1。

||逻辑或

#include<stdio.h>
int main()
{
	int a=10;
	int b=20;
	int jg=a||b;
	printf("%d\n",jg);
	return 0;
}

||逻辑或的意思是:两个数值任意一个数是非0数就输出1。

条件操作符 exp1,exp2,exp3……expN 由逗号隔开的就是逗号表达式。

下标引用、函数调用和结构成员。 [],(),·,->

9、常见关键字

auto,break,case,char,const,,continue,defauit,do,double,else,enum,extren,float,for,got,if,int,long,register,teturn,sjort,signed,sizeof,static,struct,switch,stypedef,union,unsigned,void,volatile,while,

==注:自定义变量不可以和关键字相同== auto 自动变量

#include<stdio.h>
int main()
{
	auto int a=10;
	return 0;
}

auto自动变量是指在大括号中自动生效,离开大括号自动失效。但是每个变量都有自动变量,所以省略不显示了

register 寄存器变量

#include<stdio.h>
int main()
{
	register int a=10;
	return 0;
}

register寄存器变量是指使用寄存器变量可以使变量存在寄存器中,可以使我们更快的调用这个函数,但是register只是向寄存器申请,因为想要快速读取或调用的变量太多,具体是否可以存放到寄存器中,需要由寄存器判断。

signed 定义有符号的变量 unsigned 定义无符号的变量

#include<stdio.h>
int main()
{
	signed int a=-10;
	unsigned int a=10;
	return 0;
}

signed可以输出负数或正数 unsigend只能输出正数。

typedef 类型重定义

#include<stdio.h>
int main()
{
	typedef unsigned int =u_int;
	u_int a=10;
	return 0;
}

typedef是将名字长度过长的类型起一个较短的别名,方便我们后续使用这个类型。

static 静态 extern 声明外部函数 static 修饰局部变量

#include<stdio.h>
int test()
{
	static int b=1;
	b++;
	printf("%d\n",b);
}
int main()
{	
	int a=0;
	while(a<5)
	{
		test();
		a++;
	}
	return 0;
}

static修饰全局变量

//文件1
#include<stdio.h>
int main()
{
	extern a;
	int b=a;
	printf("%d\n",b);
	return 0;
}
//文件2
strtic int a=10;

strtic修改函数的链接属性

//文件1
#include<stdio.h>
extern int add(int x,int y);
int main()
{
	int a=10;
	int b=20;
	int jg=add(a,b);
	printf("%d\n",jg);
	return 0;
}
//文件2
int add(int x, int y)
{
	int z=x+y;
	return z;
}

#define 定义了宏和常属性 #define增加常属性

#include<stdio.h>
#define b 20;
int main()
{
	int a=10;
	return 0;
}

#define 定义了宏 ==注:使用宏是,宏名一般都是大写==

#include<stdio.h>
#define JG(x,y)(x>y?x:y)
int main()
{
	int a=10;	
	int b=20;
	int jg=ADD(a,b);
	return 0;
}

10、指针

  • 定义指针变量和解引用
#include<stdio.h>
int main()
{
	int a=10;
	int*p=a;
	*p=20
	return 0;
}

指针的大小 指针的大小在32位平台是4个字节,64位平台是8个字节

11、结构体

struct 结构体 strcpy 字符串拷贝 需要搭配string .h使用 ==注:strcpy在vs2022中使用会报错,需要搭配#pragma warning(disable:4996)使用。==

#include<stdio.h>
#include<string.h>
struct ren
{
	char xm[10];
	char xb[10];
	short nl;
	short tz;
}
int main()
{
	struct ren r={"小明","男",18,75};
	prinft("%s\n",r.char);
	//这是经常使用的输出方法。
	struct ren* p=r;
	printf("%s\n",(*p).xm);
	printf("%d\n",p->nl);
	//这是使用指针输出的方法。
	strcpy(r.xm,"小王");
	//这是使用字符串拷贝替换内容的方法。
	return 0;
}

标签:总结,10,main,return,int,C语言,初识,printf,include
From: https://blog.51cto.com/u_15949477/6047182

相关文章

  • java基础知识精华总结 java面试题
    1、文件拷贝,把一个文件的内容拷贝到另外一个文件里packageorder;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;import......
  • C语言填空:单词个数
    #include<stdio.h>//输入一行英文,输出单词个数#include<string.h>main(){charzf[101];inta,b,【1】;【1】;a=【1】;for(b=0;【1】;b++......
  • C语言填空:数组 最大值 最小值
    #include<stdio.h>//输入5个1-9之间的整数,输出其中的最大值和最小值main(){inta[5],i,j,temp,【1】;for(i=0;i<5;i++)scanf("%d",&a[i]);for(i......
  • C语言填空:判断月份的天数
    #include<stdio.h>//从键盘输入一个年份和月份,输出该月的天数main(){intyear,month;scanf("【1】",&year,&month);switch(month){cas......
  • 关于技术能力的思考和总结-技术leader思考(三)
    目录技术常用思考方法向前思考,向后倒推目标与路径端到端思考闭环思考指标量化思考故事与形象思考乘数效应小结技术Leader是一个对综合素质要求非常高的岗位,不仅要有解具体......
  • 关于技术能力的思考和总结-架构设计(二)
    目录技术架构思考方法0--->11--->01--->21--->N-1<--->1M*N--->M+N总结这篇文章我其实更想跟大家聊聊一些常用的思考方法,思考问题的方式对了,往往可以帮助大家少走弯路。......
  • C语言字符串操作函数汇总
    1.strcpy函数语法:strcpy(str1,str2)功能:将字符串str2复制到字符串str1中,并覆盖str1原始字符串,可以用来为字符串变量赋值。返回:str1注意:1.字符串str2会覆盖str1中的全部字......
  • C语言中的数据类型转换
    自动类型转换,即参与运算的各个数据都转换成数据较长的数据类型,然后计算,结果的类型就是数据长度较长的数据类型。本质上就是将较低类型按照“就高不就低”或“就长不就短”的......
  • C语言中的 printf 与 scanf
    相比于其它的编程语言,C语言的输入输出功能非常强大,可以按照各种要求进行输入输出。1.printf的功能主要用于按照用户指定的格式把指定的数据输出到显示器上。1.1.printf......
  • C语言中的运算符
    ......