【AcWing】C语言入门讲义

ACWing 学习笔记。
C语言入门讲义 - AcWing


三、变量类型

int a;  //定义了一个int型的a变量 这里a的大小不能超过 2147483647,你们只需要记住int最大能存 10^9 的数就行; 
long long b; //定义了一个long long型的b变量 当你需要定义超过 10^9 次方数的时候 就需要用 long long 型的变量;
char c; //定义了一个字符c;
float d; //定义了一个浮点数(小数)d,例如33.2;
double e; //定义了一个双浮点数e, 例如33.2;

另外还有 无符号类型 unsigned 表示的范围再大一点。

整数类型

下表列出了关于标准整数类型的存储大小和值范围的细节:
1

注意,各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。
以下列出了32位系统与64位系统的存储大小的差别(windows 相同):
2

为了得到某个类型或某个变量在特定平台上的准确大小,可以使用 sizeof 运算符。表达式 sizeof(type) 得到对象或类型的存储字节大小。如获取 int 类型的大小:

#include <stdio.h>
#include <limits.h>

int main()
{
printf("int 存储大小 : %lu \n", sizeof(int));

return 0;
}

%lu 为 32 位无符号整数。输出结果:

int 存储大小 : 4

十、数组

字符串

  • 学习字符串 需要一个新的头文件 # include<string.h> 里面包括 strlen() 等….

  • ‘a’ ‘c’ 表示字符

  • “helloworld” 表示 字符串

  • 表示字符串 需要用 char数组

  • 输入字符串%sscanf 不需要 & 符号

  • scanf("%s",c); //输入字符串会默认空格或者回车为输入结束

  • 注意:有时候需要使用 getchar() 吸收 空格、回车

多个字符串

当有多个字符串时,考虑用 二位字符数组,因为我们知道一个 一维char数组 可以表示 一个字符串,所有我们用 二维char数组,那么 char[][] 第一个 [] 代表有多少个字符串 第二个 [] 代表字符串大小

char s[20][40]      
//第一个[20]表示有20个字符串,第二个[40]表示每个字符串的大小为40

十一、排序

排序 基本对数组进行操作
从小到大排序
从大到小排序

//冒泡排序 模板

int a[10] = { 25,35,68,79,21,13,98,7,16,62 };
int n=10;
int i,j,t;
for(i=0;i<n-1;i++) //需要排的轮数
{
for(j=0;j<n-i-1;j++)//当前轮数需要比较相邻的次数
{
if(a[j]>a[j+1]) //如果当前大于后面 要交换一下
{ //a[j]>a[j+1] 为从小到大排序
//a[j]<a[j+1] 为从大到小排序
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}