前言:谨以此篇记录c语言学习学习初期的一些收货和心得,如若有不恰当的地方敬请指教。
一丶学习c语言的意义。
c语言是几乎所有的编程学习中第一个接触的科目,这就意味着它是基础中的基础,学习它一是为了掌握和熟悉编程语言这一特殊的语言,跟我们以往学习的差别较大,所以学好c语言能锻炼出一定的计算机语言思维,第二个就是为以后的更深层次的学习打下基础,如同小学初中的学习是为了高中学习打基础一样。所以,毋庸置疑,c语言的学习不能掉以轻心,话不多说,让我们开始吧。
二丶第一个c语言程序
#include<stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
相信很多朋友第一次编写的代码也是这句话吧,因此特地将这段代码作为文章的开始。
三丶数据类型
1.定义:数据类型 [DataType] 在一种程序设计语言中,变量所具有的数据种类。简单的来说,就是不同的数据,它的类型是不一样的。
2.种类及大小
3.举例:
int age = 20;
char ch = 'abc';
float a= 3.14;
三丶变量,常量
1.变量和常量是我们在程序中经常运用的2种十分重要的类型,常量是在后续操作中数值不会改变的量,而变量则在后面的操作中,会因为输入值而发生改变。
2.变量:变量分为局部变量和全局变量,局部变量的作用域在它所在的区域内有效,全局变量的作用域则在整个代码范围有效。同时,在局部变量和全局变量名字相同时,则优先采用局部变量(建议不要将全局变量和局部变量名取为一样的)。
定义变量方式如下:
int a= 1;
float num = 0.0;
char ch = 'w';
变量的运用例子:
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d",&a,&b);//输入值以改变a,b的值;
c = a + b;
printf("%d\n",c);
return 0;
}
3.变量的作用域与生命周期:
变量的作用域:
a. 局部变量的作用域是变量所在的局部范围。
int main()
{
//字面常量
1234;
1000;
//const修饰的常变量, const函数保护目标变量不被改变,本质还是变量。
const float = 3.14;
//define定义的标识符常量
#define MAX 100//将max定义为100这个数值
printf("%d\n",MAX);
//枚举常量
printf("max=%d\n",MAX);
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}
四丶字符串与转义字符
1.字符串
int main()
{
"hello world"
char arr[] = "hello world";
char arr2[] = "abcdefg";
return 0;
}
\0是字符串结束标志

五丶选择语句
1.if语句
if语句是先判断括号里的值,如果是非0的话就执行内的语句(注意区分赋值运算符和关系运算符的区别),同时后面常跟else的子语句来实现多种选择,形式如下:
if (表达式)
语句
else if (表达式)
语句
else if (表达式)
语句
else
语句
示例如下:
2.switch语句
if语句虽然能解决分支问题,但是在分支太多时,if语句就显得有些麻烦与力不从心了,这时候我们就需要更简洁的switch语句了,switch语句基本格式如下:
示例如下:
int main()
{
int b = 0;
switch(a)
{
case 1: b = 30;
case 2: b = 40;
default: b = 50;
}
return b;
}
六丶循环结构
1.for循环结构
for循环是编程语言中一种循环语句,而 循环语句 由 循环体 及循环的判定 条件 两部分组成.
逻辑为:
基本句式为:
for(语句1;语句2;语句3)
{
执行语句
}
示例
#include <stdio.h>
int main()
{
int i, sum=0;
for(i=1; i<=100; i++)
{
sum+=i;
}
printf("%d\n",sum);
return 0;
}
2.while语句
while是除了for语句外另一种循环表达语句。
do
循环语句;
while(表达式);
表达逻辑为:
示例为:
#include <stdio.h>
int main(void)
{
int i,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf("%d\n",sum);
return 0;
}
七丶函数
c语言中函数能帮助我们完成很多逻辑的实现,同时也使得编程语言更加灵活和作用更大。函数分为库函数和自定义函数。库函数可自行查阅,我们平时在编写编程时基本离不开自定义函数。自定义函数和库函数一样,有函数名,返回值类型和函数参数。 但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。
举个例子:
int max(int x,int y)
{
return (x+y)?(x):(y);
}
int main()
{
int a = 10;
int b = 20;
int max = get_max(a,b)
printf("%d\n",max);
return 0;
}
其中的max即我们自定义的比较2个数大小的函数
同时函数还分为形参和实参:
实际参数:
数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。
1.数组的形式
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
2.数组的小标
数组的小标是从0开始,也就是每一个数组里的元素的下标都是顺序大小减一。
数组的运用:
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
九丶操作符



单目操作符
关系操作符
逻辑操作符
条件操作符
十丶指针
1.指针的定义
内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
2.指针的表达方式
#include <stdio.h>
int main()
{
int a = 10;//在内存中开辟一块空间
int *p = &a;//这里我们对变量a,取出它的地址,可以使用&操作符。
//a变量占用4个字节的空间,这里是将a的4个字节的第一个字节的地址存放在p变量
//中,p就是一个之指针变量。
return 0;
}
3.指针变量的大小
#include <stdio.h>
//指针变量的大小取决于地址的大小
//32位平台下地址是32个bit位(即4个字节)
//64位平台下地址是64个bit位(即8个字节)
int main()
{
printf("%d\n", sizeof(char *));
printf("%d\n", sizeof(short *));
printf("%d\n", sizeof(int *));
printf("%d\n", sizeof(double *));
