目录
1.1运行hello world 程序
这个基础的程序是每一个编程人必须掌握的,在这里我用的环境是vs2013。用vs2013运行程序时,结果会出现闪现的现象,所以注释部分的两句就是为了让程序暂停一下,是我们看到结果。
#include<stdio.h>//必须写
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
int main()
{
printf("Hello World!\n");
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
2. 1数据类型
2.1.1用代码来求得各类型的大小
注意:sizeof():关键字是用来进行类型大小计算的;
不同类型所占用的字节大小是不同的。
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
int main()
{
//sizeof():关键字是用来进行类型大小计算的
//不同类型所占用的字节大小是不同的
printf("char:%d\n",sizeof(char));
printf("short:%d\n",sizeof(short ));
printf("int:%d\n",sizeof(int));
printf("long:%d\n",sizeof(long));
printf("long long:%d\n",sizeof(long long));
printf("float:%d\n",sizeof(float));
printf("double:%d\n",sizeof(double));
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
运行结果:
2.1.2局部变量与全局变量
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
int g = 2019;
int main()
{
int g = 2020;
g = 2021;
printf("value:%d\n", g);
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
运行结果为:2021;
注意:不建议将全局变量和局部变量设置同名的!!!
这里我们也要提到一个就近原则,那就是当局部变量和全局变量同名时,局部变量优先使用。
3.1加法器
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
#pragma warning(disable:4996);//解决4996报错的方法
int main()
{
int num1 = 0;
int num2 = 0;
printf("请输入两个数据:");
scanf("%d %d", &num1,&num2);
int result = num1 + num2;
printf("%d+%d=%d\n", num1, num2, result);
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
在这里提一个解决4996报错的方法:#pragma warning (disable:4996);
3.2作用域与周期
代码举例:
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
#pragma warning(disable:4996);//解决4996报错的方法
void show()
{
int a = 10;
printf("show run!\n");
}
int main()
{
show();
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
这里的a被调用时就开始它的作用了,但结束后它又被释放了,说明它的生命周期结束了。
4.1C语言中的常量
4.1.1字面常量
4.1.2定义宏
关键字:define
宏定义的作用:见到名字就知道其意思,便于维护。
代码举例:
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
#pragma warning(disable:4996);//解决4996报错的方法
#define RED 1//宏定义
//#define MAX 100//宏定义
int main()
{
/*int a = 1;
int b = 1;
int c = 1;
int d = 1;*/
//这样写有个不好处就是如果大量数据需要修改时就直接修改不了,得一个一个改,很麻烦
/*int a = RED;
int b = RED;
int c = RED;
int d = RED;*/
//为了解决上面一步提出的问题,我们直接这样写比较好,这样后面可以直接从宏定义那里改
//int a = 100;将这句话换为int a =MAX更好
//MAX=200;如果将MAX宏定义为100,那么这里的MAX就不能这样写,会报错;
//int a = MAX;
//printf("MAX:%d\n", MAX);
//printf("a:%d\n", a);
/*1;
'a';
"hello world";*/
//这三条语句可以编译通过,但没有任何意义,这些叫做字面值
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
4.1.3枚举
关键字:enum{ }。
代码示例:
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
#pragma warning(disable:4996);//解决4996报错的方法
enum{
RED=100,
YELLOW,
BLUE,
BLACK,
};
int main()
{
int a = RED;
int b = YELLOW;
printf("a:%d\n", a);
printf("b:%d\n", b);
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
4.1.4const修饰的常变量
用const修饰变量定义,被修饰的变量不能直接被修改。
代码示例:
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
#pragma warning(disable:4996);//解决4996报错的方法
int main()
{
/*int a = 100;//初始化
a = 200;//赋值
printf("%d\n", a);*/
//此时程序运行出来的结果是200;
const int a = 100;//初始化
a = 200;//赋值
printf("%d\n", a);
//此时程序会报错,提示a不能被负200,因为与之前定义的100不等
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}
5.1字符串
c语言中字符串用“ ”来表示,默认以‘\0'结尾,所以它的长度会比肉眼看到的真实值加1。
代码示例:
#include<stdio.h>
#include<windows.h>//仅仅是为了让程序暂停一下,让我们看到结果
#pragma warning(disable:4996);//解决4996报错的方法
int main()
{
/*"hello";
"x";
"";*/
//这三条语句虽然都能编译通过,但没有任何意义,被称为字符串常量或不可改的字符串;
/*printf("%d\n", sizeof("abcd"));
printf("%d\n", sizeof("a"));
printf("%d\n", sizeof(""));*/
//这三条语句求得的结果会比其看到的真实值加一,因为c中字符串是以‘\0'结尾的;
/*char str[16] = "hello";//以数组形式保存字符串。
str[6] = 'x';
printf("%s\n,str);*/
char str1[16] = "bit";
char str2[16] = { 'b', 'i', 't' };
char str3[16] = { 'b', 'i', 't','\0' };
printf("%s\n", str1);
printf("%s\n", str2);//可能出现乱码
printf("%s\n", str3);
system("pause");//仅仅是为了让程序暂停一下,让我们看到结果
return 0;
}