c语言笔记(后续还有更新)

发布于:2022-08-02 ⋅ 阅读:(347) ⋅ 点赞:(0)

 

目录

计算机中的单位

计算机中识别二进制

sizeof

scanf_s和scanf函数

格式字符

变量

常量

字符串

计算机中的单位

    byte - 字节 = 8bit

    kb - 1024byte

    mb - 1024kb

    gb - 1024mb

    tb - 1024gb

    pb - 1024tb

计算机中识别二进制

1 8进制:0-7
0 10进制:0-9

sizeof

  • 关键字 - 操作符 - 计算类型或者变量所占空间的大小
  • c语言标准:sizeof(long) > sizeof(int)
  • sizof的单位是  字节byte
  • 	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));

scanf_s和scanf函数

  • scanf_s函数——是VS编译提供的,不是c语言标准规定的
  • 使用scanf(输入函数)的解决方法:源代码第一行加上
    #define _CRT_SECURE_NO_WARNINGS 1

 打开之后加上源代码,保存。

 

格式字符

格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。 
格式字符有d,o,x,u,c,s,f,e,g等。


详细说明:

%d    整型输出,打印一个整数

%ld   长整型输出,

%o    进制数形式输出整数,

%x    十六进制数形式输出整数,

%u    十进制数输出unsigned型数据(无符号数)。

%c    用来输出一个字符

%s    用来输出一个字符串

%f    用来输出实数,以小数(float)形式输出,(备注:浮点数是不能定义精度的,所以              “%6.2f”这种写法是“错误的”!!!)

%lf    - double

%e    以指数形式输出实数,

%g    根据大小自动选f格式或e格式,且不输出无意义的零。


scanf(控制字符,地址列表) :
格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。如scanf("%d%c%s",&a,&b,str)

变量

全局变量:{}外部定义的,也就是main函数外面


局部变量:{}内部定义的,就是main函数里面


局部变量全局变量名字冲突的情况下,局部优先
不建议:把全局变量和局部变量的名字写成一样的

常量

  1. 字面常量:

  • 整型常量:13、0、-13;
  • 实型常量:13.33、-24.4;3.14;
  • 字符常量:‘a’、‘M’  ;
  • 字符串常量: " abcdef "  
  • int a[100];    其中的100也是常量,此处需注意,[]中的数字必须是常量;

    2. const修饰的常变量

        const修饰的变量具有常量的某些特征,其中最主要的特征就是const修饰的变量不可被改变,但注意,被const修饰的变量本质上仍是变量,只是不可被改变,如同被static修饰的局部变量生命周期发生改变,但是作用域却不发生改变一样,本质上仍是局部变量,作用域仍在所定义的代码块内。

       数组的[]内必须是常量,我们在把const修饰的变量n放入[]内时,编译器会报错,所以const修饰的变量本质上仍是变量。

const int num = 10;//num就是常变量 - 具有常属性(不能被改变的属性)
num = 20;
printf("num = %d\n", num);//20

int arr[10] = {0};//10个元素

const int n = 10;
int arr2[n] = {0};//n是变量的,这里是不行

  3.#define定义的标识符常量

#define 标识符 常量值 

#include <stdio.h>
#define A 100  //定义常量及常量值
int main()
{
    A = 10;  //这里的不可改变
}
#define A 100

int main()
{
    int a[A]; //这里的A是常量
}

 4.枚举常量

可以一一列举的常量

enum Sex
{
	MALE = 3,//赋初值
	FEMALE,
	SECRET
};

int main()
{
    enum Sex x = MALE;  //enum为枚举类型,Sex为类型名,x为变量
    MALE = 3;

    printf("%d\n", MALE);
    printf("%d\n", x);
    printf("%d\n", FEMALE);
    printf("%d\n", SECRET);
}

字符串

 就是一串字符 - 用双引号括起来的一串字符,注意头文件#include <string.h>

#include <string.h>

int main()
{
	"abcdef";
	return 0;
}
int main()
{
	// 字符数组 - 数组是一组形同类型的元素
	// 字符串在结尾的位置隐藏了一个\0的字符
	// \0是字符串的结束标志

	//char arr[] = "hello";

	char arr1[] = "abc";
	char arr2[] = {'a', 'b', 'c'};

    //求一下字符串的长度
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));

	int len = strlen("abc");  //string length
	printf("%d\n", len);

	//打印字符串
	printf("%s\n", arr1);
	printf("%s\n", arr2);

	return 0;
}