如何学好C语言

1.很多学生想学C语言,却学不会,是方法不对!
2.网上的讲方法的资料很多,都是纸上谈兵
3.计算机的知识晦涩难懂,不容易自学
 

1. 选择工具  ——  VS2019


1.VS2019是集成开发环境,对新手友好,不要配置环境,上手就可以使用
2.VS2019是主流的集成开发环境,企业中使用率比较高

2.怎么学习C语言?

(1)必须实践 --- 敲代码

学习语法

如if的语法:

#include<stdio.h>
int main()
{
	int a = 35;
	if(a > 18)  
		printf("你成年了\n");
	getchar();
	return 0;
}

方法:①看书:《明解C语言-入门版》

                                在线试读:图灵社区

                                习题参考答案:VividColors-CSDN博客

                            《C语言程序设计现代方法》

                                在线试读:图灵社区

           ②听网课(笔者推荐)

           ③动手写一些代码:模仿--自己上手(借鉴思路,不是抄写,思维和解决方法很重要)

                比如:求10个整数的较大值:

//求10个整数的较大值
#include<stdio.h>
int main()
{
	int arr[10] = {0};
	/*int arr[10]:声明了一个名为arr的整型数组,
	//= {0}:这部分是对数组进行初始化的操作。大括号{}中包含了初始化值。
		在这个例子中,大括号里只有一个值0,这意味着数组的所有元素都将被初始化为0。
		如果初始化列表中的值的数量少于数组的元素数量,那么未明确初始化的元素将自动被初始化为该类型的默认值。
		对于整型(int),默认值也是0。
	//这行代码创建了一个包含10个元素的整型数组,名为arr,并将所有元素的值都设置为0   */
	int i = 0;
	for(i = 0;i < 10;i++)
	{
		scanf("%d",&arr[i]);
	}
	//输入10个数
	int max = arr[0];  // 初始化max为数组的第一个元素  
	
	for(i = 1;i < 10;i++)
	{
		if(max<arr[i])
		{
			max = arr[i];  // 更新max的值
		}
	}
	printf("max = %d\n",max);

	return 0;
}
自主实践:求10个整数的平均值

笔者尝试:

#include<stdio.h>
int main()
{
	int arr[10];
	int i = 0;
	int sum = 0;
	int ave = 0;
	for(i = 0;i < 10;i++)
	{
		scanf("%d",&arr[i]);
		sum = sum + arr[i];
	}
	avg = sum / 10;
	printf("average = %d\n",avg);
	
	return 0;
}

(2)必须画图理解内存布局

C语言是一门偏底层的语言,可以直接操作(访问)内存的
所以我们要清楚的知道,写出的代码所对应的内存布局

比如:(若部分还未学到,可以保存等学到该部分再问自己来巩固

局部变量创建在哪里?

数组是怎么创建的,随着下标的增长地址是怎么变化的?

一维数组、二维数组在内存中的布局是怎样的?

指针和内存的关系是啥?

指针和数组的关系是啥?怎么通过指针访问数组?

怎么通过指针访问任意内存?

函数的调用逻辑?

函数是怎么传递参数的?

实际参数和形式参数的关系是怎么样的?

函数调用的栈帧是怎么创建和销毁的?

函数递归是怎么调研的?

全局变量、静态变量?

动态内存开辟都是那些区域?

柔性数组是怎么样的?

可变参数是怎么实现的?

(3)调试、调试、还是调试 (打开监视,一次一次按F10)

学会调试就是锻炼自己心中有数的能力。
写代码前有清晰的思路,写代码后运行正确,是我们期望的。
有时候,还是会因为逻辑复杂,出了问题,这时候就得借助于调试,找出代码的问题,
在初学时,调试帮我们更好的理解代码的运行逻辑。
在学成后,调试有助于我们找出代码中的BUG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值