一、C语言helloworld案例入门:
#include
//引入头文件(引入函数库)相当于java import的操作
#include
main() //主函数,跟java类似 程序的入口函数
{
printf("Hello world !\n"); //在控制台输出
system("java cn.itcast.demo.HelloWorld");//调用执行java文件
system("pause");
}
//system("pause");是:调用cmd里面的暂停命令,让cmd窗口暂停执行以下 ,方便我们观察程序的执行结果.
二、C语言的基本数据类型:
c语言的数据类型
char, int, float, double, signed,unsigned, long, short and void
1.在c99的语法的中 是没有boolean的数据类型的,true false 非0代表真 0代表的是假.
2.c语言里面没有byte类型 ,
如何让c语言表示 java中的byte呢 可以利用char类型代替java中的byte类型
3.c语言里面没有String的字符串 , c想表示一个字符串 一般是通过char数组来表示的
sizeof(); 参数是数据类型 返回值就是这个数据类型在内存中占用多少空间
4. 注意: signed, unsigned:只能修饰整数类型的数据 不能修饰浮点型的数据。
signed表示有符号,unsigned表示无符号。
5.java中的char是两个字节 ,c语言里面 1个字节
*/
#include
//引入头文件 java import的操作
main()
{ // %d 代表的是一个占位符
printf("char占用的字节为%d\n",sizeof(char)); 1个字节
printf("int占用的字节为%d\n",sizeof(int)); 4个字节
printf("float占用的字节为%d\n",sizeof(float)); 4个字节
printf("double占用的字节为%d\n",sizeof(double)); 8个字节
printf("short占用的字节为%d\n",sizeof(short)); 2个字节
printf("long占用的字节为%d\n",sizeof(long));
printf("signed int占用的字节为%d\n",sizeof(signedint));
printf("unsigned int占用的字节为%d\n",sizeof(unsignedint));
//printf("unsigneddouble占用的字节为%d\n",sizeof(unsigned double)); 该行代码会报错。
system("pause");
}
三、输入输出函数:
1、C语言中的删除操作使用占位符实现的,不同类型的数据对应不同占位符:
%d - int
%ld – long int
%c - char
%f - float
%lf – double
%x – 十六进制输出 int 或者long int 或者short int
%o - 八进制输出
%s – 字符串
%hd - short
short
2、C语言的输入函数:
Int len;
Scanf(“%d”,&len); //扫描键盘的输入函数:
参数1:输入数据的指定类型的占位符。
餐宿2:指定保存输入数值的变量地址。
例:
#include
//引入头文件 java import的操作
main()
{
int i = 129024;
long l = 333L;
char c ='B';
float f = 3.1415926f;
double d = 3.1415;
short s = 257;
printf("int i =%d\n",i);
printf("int l =%ld\n",l);
printf("int c =%d\n",c);
printf("int f =%f\n",f);
printf("int d =%lf\n",d);
printf("short s=%hd\n",s);
char cc;
printf("请输入一个int类型的值\n");
//& 取地址
scanf("%c",&cc);
printf("char cc =%c\n",cc);
//接收输入的字符串:使用char数组:
//定义一个char类型的数组 叫arr 用来存放字符串
char arr[]={' ', ' ',' ','',' '};
printf("请输入一个字符串\n");
scanf("%s",arr);
printf("数组的内容%s\n",arr);
system("pause");
}
四、指针:
1、所谓指针就是一个地址,地址其实就是一个内存空间的编号.
2、每个变量在内存中都有一个地址 :通过& 符号获取变量的地址.
例:
#include
main(){
int i;
//把i变量在内存中的地址 打印出来
//打印出变量的地址,指针就是一个地址 ,
//地址为十六进制:如:0xXXXX ,#表示打印的数值前面带0x
printf("i的地址为%#x\n",&i);
//60秒的倒计时
for(i =60; i>0;){
printf("剩余时间%d\n",i);
sleep(4000);
i--;
}
printf("游戏结束\n");
system("pause");
}
3、指针和指针变量:
例:
#include
main(){
// 1. 指针就是地址, 通过一个地址可以访问到一块内存空间, 如果修改这个内存空间里面的内容
int i = 5; //定义一个int类型的变量 变量的名字 叫 i 里面存放的内容 是一个int类型的值
// 2. 指针变量 用来存放一个变量地址的变量
int* p; //定义了一个int* 类型的变量 变量的名字叫p 里面存放的内容 是一个
//int* 类型的值
//也可以定义为:int *p; 或 int * p;
p = &i; // p里面存放的就是 i变量的地址了.
printf("p的值为%#x\n",p);
// 指针和指针变量的关系
// 指针是一个地址 ..
// 指针变量是存放一个地址的变量
//其实是两个完全不同的概念,但是 世面的书籍 习惯上把指针跟指针变量没有做区别
// * 号操作符的使用:
1.使用场景,定义一个指针变量 int* double* long*
2.表示两个数据相乘 3*5 = 15;
3. 如果*号后面跟的是一个指针变量, 用*可以访问指针变量内部存放的地址 里面存储的变量
//*p; //获取p变量里面存放地址所指向的变量,就是i对应的值;
//*p 和 i 代表的是同一个变量
printf("*p的值为%d\n",*p);
system("pause");
}
五、指针的常见错误:
1、指针未经赋值不能使用: 以下代码会报错:
#include
main(){
int i = 5;
int* p ;
printf("*p的值为%d\n",*p);
system("pause");
}
2、不同的指针类型 不能进行相互的转化
#include
/**
不同的指针类型 不能进行相互的转化
每一种变量类型 在内存中占用的空间 是不相同的.
*/
main(){
s