当前位置: 首页>编程语言>正文

C语言#初识C语言 总结

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','

'; printf("%s\n",arr); pritf("%s\n",strlen(arr)); return 0; }

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

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

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

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

::: hljs-center

C语言#初识C语言 总结,ACSII表.png,第1张

C语言#初识C语言 总结,常见的转义字符.png,第2张

:::

……

注释 注释有两种风格/……/和// //是c++的注释风格,可以注释单行或多行 /

/是c的注释风格,缺陷是不能嵌套注释

5、选择语句、循环语句

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

if()else

#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;
}

while()

6、函数

#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; }

add[]-自定义函数

7、数组

#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; }

add[]

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

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

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

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

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

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

::: hljs-center

C语言#初识C语言 总结,原码-反码-补码的计算过程.png,第3张

#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,

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

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

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

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

register 寄存器变量

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

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

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

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

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

typedef 类型重定义

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

#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 静态 extern 声明外部函数 static 修饰局部变量

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

static修饰全局变量

//文件2
strtic int a=10;

//文件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; }

strtic修改函数的链接属性

//文件2
int add(int x, int y)
{
	int z=x+y;
	return z;
}

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

#define 定义了宏和常属性 #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; }

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

10、指针

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

    11、结构体

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

    #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; }

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


    https://www.xamrdz.com/lan/5s31987272.html

    相关文章: