自学C Day1

这篇博客介绍了C语言的基础知识,包括#define预处理器指令消除不安全函数警告、各种数据类型的大小、变量定义与作用域、常量定义、枚举以及字符串的使用。还讲解了转义字符和字符串长度的计算。内容涵盖C语言的关键概念,适合初学者入门学习。
摘要由CSDN通过智能技术生成

Day1

#define _CRT_SECURE_NO_WARNINGS 1 的使用
解决不安全函数报错问题

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h> **//包含头文件**
int main() **//主函数 一个工程中只能有一个main函数**
{
 printf("hello\n");**//库函数printf打印信息的 \n换行 ;结束该行代码**
 return 0;
}

char 字符数据类型
int 整型
short短整型
long长整型
long long长长整型
float 单浮点
double双浮点
sizeof(xx)判断变量或计算类型所占空间大小

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	printf("%d\n",sizeof(char)); 
	**//%d按整数的实际长度输出 %c单个字符 %s字符串 %d整型 %f浮点型 %lf双浮点**
	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));
	return 0;
}

定义变量
int age=20;//int 变量类型 age变量名字

局部变量和全局变量
{}内部的为局部反之为全局
局部变量和全局变量名称一样时,局部优先。因此不建议将局部和全局名称取一样

#define _CRT_SECURE_NO_WARNINGS 1; 
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int sum = 0;
	scanf("%d %d", &a, &b); **//scanf()输入 &a:取数据存入a &b:取数据存入b**
	sum = a + b;
	printf("%d\n", sum);
	return 0;
}

作用域(scope):变量何处可用何处为其作用域
局部变量的作用域:变量所在的局部范围
全局变量的作用域:整个工程
注:使用前需声明extern**+变量类型+变量名字**

变量的生命周期:变量创建和销毁的时间段
局部变量的生命周期:进入局部范围开始,出范围结束
全局变量的生命周期:程序的生命周期

常见常量
const修饰常变量不可更改,但本质仍是变量。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	const int a = 0;
	int a = 1; //error
	printf("a=%d", a);
	return 0;
}

#define定义标识符常量 通常不可更改

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    #define Mini 18
	int a = Mini;
	printf("Mini=%d", Mini);
	return 0;
}

枚举常量enum:可以一一列举的常量 (默认值从0开始,可以赋初值)
格式
enum+变量
{可能取值用,隔开}

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
enum transport
{
 bike,// 输出为0 1 2 3 or bike=1 此时输出为1 2 3 4
 car,
 train, 
 plane//四个量为枚举的未来可能取值
}int main()
{
enum transpot way=bike;
printf("way=%d\n",bike);
printf("way=%d\n", car);
printf("way=%d\n", train);
printf("way=%d\n", plane);
return 0;
}

字符串string:由双引号囊括的英文字符就称为字符串。(\0是字符串的结束标志)

#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
	char arr[] = "hello world";//字符串的末尾隐藏了一个"\0"的字符
	return 0;
}

#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
int main()
{
	char arr1[] = "qwe";
	char arr2[] = { 'q','w','e' };
	printf("%s\n", arr1);
	printf("%s\n", arr2);//此时因为没有结束字符\0将持续打印下去,就会出现乱码。
	return 0;
}

求字符串长度strlen(需要引用头文件#include <string.h>否则会出现警报)

#define _CRT_SECURE_NO_WARNINGS 1;
#include <stdio.h>
#include <string.h>
int main()
{
	char arr1[] = "qwe";
	char arr2[] = {'q','w','e'};
	printf("%d\n",strlen(arr1));//输出发现虽然string隐藏了一个\0,但是在计算长度时并不算进去。
	printf("%d\n",strlen(arr2));//因为没有结束标志\0因此会输出随机值。
	return 0;
}

转义字符:转变其原本意思

注:转义字符当计算字符长度时是看成一个字符的。

举例

#include <stdio.h>
int main()
{
 printf("%s\n","\"");//此时输出为单个\。//error printf("%s\n",""")
 printf("%c\n",'\'');//此时输出为单个'。//error printf("%c\n",''')
 printf("%c\n",'\130');//\ddd为8进制转化为10进制后对照ASCII表找到字符如\130=88(%d)=X(%c)
 printf("%c\n",'\x30');//\xdd为16进制转化为10进制后对照ASCII表找到字符如\x30=48(%d)=0(%c)
 return 0;
} 

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值