学习c语言个人记录

常犯错误:

(1)符号需要用英文,如:(){}""''\//;<>,. 部分中英文形态相似难以辨别。且空按Shift会切换中英文

(2)语句要以;结束

其他:

(1).-4.0e3=-4.0*10^3

多种函数:

常用头文件(令printf可使用)(其他作用不太清楚)        standard input output

#include <stdio.h>

main函数

大部分操作在主函数内使用,有且只有一个

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

int表示main函数返回整型

int main(void)无参数 ()可写参数

int main()
{}

return

return 0; 返回0,主函数结尾使用(看见部分代码不使用也可以)(作用不清晰)

return z ; 返回z,一般用于定义函数

int main()
{
    return 0;
}
int add(intx,inty)
{
    int z = x + y;
    return z;
}

printf函数

printf("");输出 print format

插入符:

如果有n个占位符,printf()的参数就应该有n+1个(前面的字符串)

小数点算一位

%d (有符号)整型         %d+字符=ASCII码值        %5d,右对齐至少五个占位

123--->__123        123456--->123456        %-5d,左对齐至少五个占位

%+5d        显示正号

%u无符号整型        unsigned int

%ul无符号整型        unsigned int long

%ull无符号整型        unsigned int long long

以上三者均可使用size_t由计算机判断,使用%zd

%c 字符        %c+ASCII码值=字符

%s字符串        %2s,输出部分字符串

%f浮点型        小数点后默认6位        %12f同%5d        %.2f小数点后两位,四舍五入

%12.2f,12.345 == %*.*f,12,2,12.345

赋值忽略符*        %*c

double--%lf

int main()
{
    printf("hello world");
    printf("a%c",'a');
    printf("1%d",1);
    printf("abc%s","abc");
    printf("1.1%f",1.1);
    return 0;
}

编译器不自动补0

在float型小数的插入符%f中百分号%的后面加上一个“小数点 + 小数位数”,例如%.2f

int main()
{
    printf("1.11%2.f",1.11);
    return 0;
}

转义字符

\n 换行

\0结束

int main()
{
    printf("hello world\n");
    return 0;
}

注释

便于查看,不影响程序执行

//

/* */

int main()
{
    //printf("hello world");
    /*printf("a%c",a);
    printf("1%d",1);*/
    printf("abc%s","abc");
    return 0;
}

数据类型

char        //字符数据类型

整型
short       //短整型
int         //整型
long        //长整型
long long   //更长的整型

浮点数
float       //单精度浮点数
double      //双精度浮点数

int main()
{
    char a = 'c';
    printf("a%c",a);
    int b = 1;
    printf("1%d",b);
    float c = 1.1;
    printf("1.1%f",c);
}

sizeof函数

计算数据所占用的比特

sizeof()数据元素个数 可以用int n = sizeof(arr1)/sizeof(arr[0])-1(计入\0故-1)

sizeof()数据数组下标可以用int n = sizeof(arr1)/sizeof(arr[0])-2

sizeof内部表达式不计算,且类型上short=int+int最终为short

int arr[]={1,2,3,4,5,6,8,9,10,11}
// 下标     0 1 2 3 4 5 6 7 8  9
//arr[]自动适应为10

计算每种类型大小

#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));
    printf("%d\n", sizeof(short));
    printf("%d\n", sizeof(int));
    printf("%d\n", sizeof(long));
    printf("%d\n", sizeof(long long));
    printf("%d\n", sizeof(float));
    printf("%d\n", sizeof(double));
    printf("%d\n", sizeof(long double));
    return 0;
}

strlen函数

#include <string.h> //令strlen可使用

strlen计算字符个数(遇到\0停止且忽视\0)  string length

#include <string.h> //令strlen可使用

内存

1byte=8bite,1kb=1024byte,1mb=1024kb,1gb=1024mb,1tb=1024gb,1pb=1024tb

scanf函数

输入函数,在vs2022中需要#define _CRT_SECURE_NO_WARNINGS 1

&为取地址        %s无需&

scanf数组接收多少输入多少--->输入超出[],报错        %5s,输入前五位

scanf("%d %d", &num1, &num2);

字符串

1.printf("abc")与printf("%s","abc")效果相同

2.单个字符用''单引号

3."abc"默认末尾有\0作为结束标志

    char arr1[] = "abc";
    char arr2[] = {'a', 'b', 'c'};
    char arr3[] = {'a', 'b', 'c', '\0'};
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    printf("%s\n", arr3);

运算符(操作符)

加+,减-,乘*,除/               整型的除法如果不能整除的话,小数部分会舍去

整型和浮点型的混合运算结果是一个浮点型        a+=5 == a=a+5        b=a++先使用,后+1

赋值=          判断相等==         判断不相等!=

#四则运算的4个符号
1 + 1  
2.0 - 1.0
3 * 4 
10 /  5 

布尔类型

需要头文件#include <stdbool.h>

_Bool/bool        输出true/false        对应1(非0)/0

bool a = true

[signed]和unsigned

如[signed]short和unsigned short

修饰字符型和整型        signed带正负号,unsigned 0和正数

int = signed int        char != signed char(取决于编译器,大部分=)

逻辑

&&与(and)        ||或(or)        !非(not)

短路

&&自左向右遇见false终止结算        ||自左向右遇见true终止结算

数组

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%d\n", a[4]);//分别对应0123456789,4对应5
	int i = 0;
	while (i < 10)
	{
		printf("%d\n", a[i]);
		i++;
	}
	char b[3] = {'a','b','c'};
	float c[2] = { 1.1 };
	return 0;
}

选择语句

if else
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h> 
int main()
{
	int input = 0;
	printf("是否");
	scanf("%d", &input);
	if (input == 1)
		printf("好");
	else
		printf("buhao");

	return 0;
}
if        else if
if(表达式)
    执行语句;
else if(表达式1)
    执行语句1;
......(很多的else if)
else 
switch
#include <stdio.h>
int main ()
{
   /* 局部变量定义 */
   char grade = 'B'; 
   switch(grade)
   {
   case 'A' ://进入
      printf("很棒!\n" );
      break;//跳出
   case 'B' :
   case 'C' :
      printf("做得好\n" );
      break;
   case 'D' :
      printf("您通过了\n" );
      break;
   case 'F' :
      printf("最好再试一下\n" );
      break;
   default ://均不是
      printf("无效的成绩\n" );
   }
   printf("您的成绩是 %c\n", grade );
 
   return 0;
}
条件操作符

三目操作符        exp1?exp2:exp3        a=(b>c?b:c)取大值

循环语句

while
while (1.条件成立)
	{
		2.执行;
		3.执行; //while循环
	}
do while
do
	{
		1.进行;
		2.进行;
	} 
	while (3.满足则循环);//do while 循环
for(;;)
for (1.赋值;2.条件; 4.进行)
	{
		3.进行;//for循环
//即使break,依然进行4
	}
#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
int main()
{
	int n = 0;
	printf("输入操作数:>");
	scanf("%d", &n );
	int a = n;
	/*while (a>1)
	{
		a--;
		n = n * a; //while循环
	}*/
	/*for (a=a-1;0<a; a--)
	{
		n = n * a;//for循环
	}*/
	do
	{
		a--;
		n = a * n;
	} 
	while (1<a);//do while 循环
	printf("%d", n);
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>