C语言学习笔记(1)初识C语言(一)

1. 第一个C语言程序

#include<stdio.h>
int main()
{
    printf("hello world");
    //printf是打印函数,属于C语言库函数需要引用头文件#include<stdio.h>
    return 0;
}

在这里插入图片描述

main()是主函数,一个程序文件中有且仅有一个主函数。

2.数据类型

基本类型

代码类型
char字符数据类型
short短整型
int整型
long长整型
long long更长的整型
float单精度浮点型
double双精度浮点型

输出格式

%…打印类型
%d打印整型
%c打印字符型
%s打印字符串
%f打印浮点型
%lf打印双精度浮点型
%p打印地址
%x打印16进制
%o打印8进制

示例

#include<stdio.h>
int main()
{
	int a = 10;
	printf("%d\n", a);
	char b = 'c';
	printf("%c\n", b);
	char arr[] = "hello";
	printf("%s", arr);
	float c = 1.0;
	printf("%f\n", a);
	double pi = 3.14;
	printf("%lf\n", pi);
	int d = 20;
	printf("%p\n", &d);
	return 0;
}

结果演示
在这里插入图片描述
计算数据类型的大小

在这里插入图片描述
sizeof() 计算类型或所占空间的大小

int main()
{
    char a=10;
    printf("%d\n",sizeof(a));
    printf("%d\n",sizeof a);   //求变量时可以省略括号
    
    printf("%d\n",sizeof(char));
    printf("%d\n",sizeof char); //error!求字符类型时括号不能省略
}

计算机中的单位:bit - 比特位
1byte-- 字节 = 8bit
1kb-- 千字节 = 1024byte
1mb-- 兆字节 = 1024kb
1gb-- 吉字节 = 1024mb
1tb-- 太字节 = 1024gb
1pb-- 拍字节 =1024tb

3.变量,常量

生活中的有些值是不变的(比如:圆周率,身份证号码,血型等等)有些值是可变的(比如:年龄,体重,薪资)。不变的值, C语言中用常量的概念来表示,变得值C语言中用变量来表示。

  • 定义变量的方法:类型 变量名=初值;
int main()
{
	int age = 150;
	float weight = 55.5;
	char ch = 'c';
}
  • 变量的分类:局部变量,全局变量
int global_variable;			'全局变量' { }外部
int main()
{
       int global_variable;	        '局部变量' { }内部
       return 0}

int var = 100;
int main()
{
    int var = 10;
    printf("%d\n",var);
    return 0;
}

>>>10

由此可见 局部变量与全局变量命名相同时,局部变量优先。

  • 变量的使用

写一个代码求2个整数的和

int main()
{
	int a = 0;
	int b = 0;
	int sum = 0;
	scanf("%d %d", &a, &b);
	sum = a + b;
	printf("sum = %d\n", sum);
	return 0;
}
  • 变量的作用域和生命周期
    作用域:
    程序设计概念,通常来说,一段程序代码中所用到的名字并不是总有效的,限定这个名字的可用性的代码范围就是这个名字的作用域。
    1.全局变量的作用域是整个工程
    2.局部变量的作用域是变量所在的局部范围
    生命周期:
    变量的生命周期是变量的创建和销毁之间的时间段。
    1.局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
    2.全局变量的生命周期:整个程序的生命周期
  • 常量
    C语言中的常量分为以下4种
    1.字面常量
    2.const修饰的常变量
    3.#define定义的标识符常量
    4.枚举常量
#define MAX 10000
int main()
{
	1. 字面常量
	3.14;
	10;
	'a';
	"abcdef";

	2. const修饰的常变量
	const int num = 10;//num就是常变量 - 具有常属性(不能被改变的属性)
	num = 20;//err
	printf("num = %d\n", num);//10
	int arr[10] = {0};//10个元素
	const int n = 10;
	int arr2[n] = {0};//err n是变量的,这里是不行

	3. #define 定义的标识符常量
	MAX = 20000;//err
	int n = MAX;
	printf("n = %d\n", n);//10000
 }
   4.枚举常量
  //性别
  enum Sex
  {
	//这种枚举类型的变量的未来可能取值
	//枚举常量
	MALE = 3,//赋初值
	FEMALE,
	SECRET
  };
  int main()
  {
	// 枚举常量
	//可以一一列举的常量
	enum Sex s = MALE;
	//MALE = 3;//err
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);
	return 0;
  }

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

  • 字符串
“hello world”

这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串。

注意:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算作字符串内容。

#include<stdio.h>
#include <string.h>
int main()
{
	//字符数组 - 数组是一组形同类型的元素
	//字符串在结尾的位置隐藏了一个\0的字符
	//\0是字符串的结束标志
	char arr1[] = "abc";
	char arr2[] = {'a', 'b', 'c'};
 
	//求一下字符串的长度
   printf("Length of arr1=%d\n", strlen(arr1));
   //strlen计算字符串的长度,需要引头文件#include <string.h>
	printf("Length of arr1=%d\n", strlen(arr2));//随机检测到\0,结果为随机值
	
	//打印字符串
	printf("arr1=%s\n", arr1);//abc
	printf("arr2=%s\n", arr2);//abc乱码
	return 0;
}

在这里插入图片描述

  • 转义字符
    当我们想在屏幕上打印一个目录:C:\code\test.c
    实际运行结果却是
    在这里插入图片描述
    这里就要提一下转义字符,转义字符就是转变原来的意思
    下面看一些转义字符
转义字符释义
\ ?在书写连续多个问号时使用,防止他们被解析成三字母词
\‘用于表示字符常量’
"用于表示一个字符串内部的双引号
\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1 - 3个八进制的数字。如:\130
\xdddd表示2个十六进制数字。如:\x30

小练笔:

// 求输出结果
#include<stdio.h>
#include<string.h>
int main()
{
	printf("%d\n", strlen("c:\test\328\test.c"));
	return 0;
}

结果为14
解析:\t,\32被解析成一个转义字符算作一个字符。八进制中不包含8所以只有\32被转义成一个字符。

  • 注释
    1.代码中有不需要的代码可以直接删除,也可以注释掉。
    2.代码中有些代码比较难懂,可以加一下注释文字。
int main()
{
	//int a = 10; //C++注释风格(推荐)
	/*
	int b = 0;
	*/   
	//   /* */C语言的注释风格 - 不支持嵌套注释
	return 0;
}

5.选择语句

#include<stdio.h>
int main()
{
	int a = 0;
	printf("你会好好学习吗(1/0)?>:");
	scanf("%d", &a);
	if (a == 1)
	{
		printf("好offer\n");
	}
	else
	{
		printf("卖红薯\n");
	}
	return 0;
}

6.循环语句

#include<stdio.h>
int main()
{
	int line = 0;
	while (line < 30000)
	{
		printf("写代码:%d", line);
		line++;
	}
	if (line == 30000)
	{
		printf("好offer\n");
	}
	return 0;
}

7.函数

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int sum = 0;
	printf("请输入两个数:");
	scanf("%d %d", &a, &b);
	sum = a + b;
	printf("%d\n", sum);
	return 0;
}
上述代码,写为函数如下
int add(int a, int b)
{
	return a + b;
}
int main()
{
	int a = 0;
	int b = 0;
	printf("请输入两个数:");
	scanf("%d %d", &a, &b);
	int c = add(a, b);
	printf("%d\n", c);
	return 0;
}

函数的特点:简化代码,代码复用。

8.数组

定义:一组相同类型的元素的集合
数组是用下标来访问的,arr[0]表示第一个元素,arr[1]表示第二个元素…
若有n个元素,其最大下标为n-1.
数组的使用

#include<stdio.h>
int main()
{
	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	char ch[5] = { 'a', 'b', 'c' };//不完全初始化,剩余的默认为0
	for (i = 0; i < 5; i++)
	{
		printf("%c ", ch[i]);
	}
	return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值