C语言学习笔记()

一、取地址符的错用

include <stdio.h>
int main()
{
int i;
scanf("%d",&i);
printf("%d",i);
}

如果将输出语句改为printf("%d",&i);编译并不会报错,但得不到想要的结果

二、scanf录入

1.scanf("%d%d%d",&a,&b,&c);
2.scanf("%d,%d,%d",&a,&b,&c);

注意第二种用键盘输入时元素间用空格键而不是逗号隔开

scanf("%d\n",&a);//此处多加了一个\n

函数scanf()格式控制字符串中含有’\n’等转义字符,会导致数据输入不能按照正常方式终止。此情况编译不会报错,但运行时会出错,大多是粗心导致,注意则好.

三、函数

(一)随机函数

 #include<stdio.h>
         #include<stdlib.h>
        int main()
       {   int i=0;
           for(;i<10;i++)
              printf("%d",rand()%100);}

该函数虽是随机函数,但多次运行后会发现每次输出的元素都一样,但可加入随机种子,比如以时间作为种子,因为时间不停地在变化,所以随机数也会随时间的变化而变化。

只需循环前添加srand((int)time(0)) 或者 srand((unsigned)time(NULL))即可

(二)函数的返回值

#include<stdio.h>
int fun(int x, int y); // 函数声明
void main()
{
    int a=1, b=2, c;
    c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
    printf("a,b中的较大值为%d\n",c);
}
// 自定义函数fun
int fun(int x, int y)    // 函数首部
{                        // {}中的语言为函数体
    return x>y ? x : y;  // 返回x和y中较大的一个数,这就是函数的返回值
}

注意:设置的函数为int型,则其返回值也一定是int型;
void函数无返回值。

四、数组

(一)

二维数组初始化时,可以省略行数,不可以省略列数,即定义二维数组时可以对第一维的长度不指定,但第二维的长度不能省去。
设有数组int am,如果要访问ai的值,编译器的寻址方式为:
&ai=&a0+isizeof(int)n+j*sizeof(int); //注意n为第二维的维数
因此,可以省略第一维的维数,不能省略其他维的维数。

(二)

int nums[2][2] = {{1,2},
                  {1,2}};

[ ]里面的个数必须是一个固定值,可以是常量(比如6、8)、常量表达式(比如3+4、5*7)。绝对不能使用变量或者变量表达式来表示元素个数,大多数情况下不要省略元素个数(当数组作为函数的形参和数组初始化时除外)

五、如何防止单独打开EXE文件时的闪退情况

#include <stdlib.h>      //需要添加一个头文件

......

system("pause");          //整个程序结尾处冻结屏幕,用户按任意键结束。

也可以在结尾处添加 getchar();
但并不适用于所有程序。

六、敲代码时中英文的转换问题

emmm,,,其实这不算什么问题,但就是有很多人编译报错之后找不到这个错误,其实编译后报错下方会有提示,提示也很具体,真的很具体,根据提示找错误,自己就可以解决这个问题。再者敲代码时细心一些,多注意中英文的转换,可有效避免此类问题的发生。

### C语言学习笔记与教程 C语言作为一门基础且强大的编程语言,其学习资源丰富多样。以下是关于C语言学习的一些关键点和推荐的学习路径。 #### 1. 学习平台与环境 C语言可以在多种平台上进行学习,包括Windows和Linux。然而,推荐在Linux平台上学习C语言[^1],因为Linux提供了更丰富的开发工具和库支持,同时在嵌入式开发、系统编程等领域具有更广泛的应用场景。 #### 2. 核心知识点 学习C语言时,需要掌握以下几个核心知识点: - **变量与数据类型**:了解基本的数据类型(如`int`, `float`, `char`等)以及如何声明和使用变量。 - **数组**:掌握一维数组和多维数组的定义与操作。 - **函数**:理解函数的定义、调用以及参数传递方式。 - **指针**:这是C语言中非常重要且复杂的部分,需要深入学习指针的概念及其应用。 - **结构体**:学习如何定义和使用结构体来组织复杂的数据。 - **标准库**:熟悉C语言提供的标准库函数,例如输入输出函数(`printf`, `scanf`)、字符串处理函数(`strcpy`, `strlen`)等[^1]。 #### 3. 学习方法 对于初学者,建议按照以下方法进行学习: - **循序渐进**:从基础语法开始,逐步深入到高级概念。可以参考全面的C语言学习指南,这些指南通常由经验丰富的开发者编写,能够提供清晰的学习路线图[^2]。 - **实践为主**:编程语言的学习离不开实践。通过编写小程序来巩固所学知识,并尝试解决实际问题。 - **分析复杂代码**:当遇到多层循环嵌套等复杂代码时,可以采用手动分析的方法。准备纸笔,逐层分析循环条件和运行结果,这种方法有助于培养逻辑思维能力[^3]。 #### 4. 推荐教程与资源 以下是一些推荐的学习资源: - 在线教程:寻找权威网站上的C语言入门教程,例如官方文档或知名教育平台。 - 视频课程:观看视频课程可以帮助更好地理解抽象概念。 - 实践项目:参与小型项目开发,例如实现简单的计算器、学生管理系统等。 ```c // 示例代码:一个简单的C语言程序 #include <stdio.h> int main() { int num1, num2, sum; printf("请输入两个整数: "); scanf("%d %d", &num1, &num2); sum = num1 + num2; printf("两数之和为: %d\n", sum); return 0; } ``` 上述代码展示了一个简单的C语言程序,用于计算两个整数的和。通过类似的小程序练习,可以快速掌握C语言的基本语法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值