1. C语言第一个程序
#include // #include 相当于Java的import; stdio:standard input$output 标准的输入输出; .h头文件的后缀,包含一些函数。
#include // stdlib.h 标准的C语言函数库
main() // 相当于Java的 public static void main(String args[]){}
{ // 函数的开始
printf("Hello World! \n"); // printf(内容)输出函数,相当于Java的System.out.print("Hello World! \n"); \n是回车换行
system("calc"); // 调起计算器
system("mspaint"); // 调起画板
system("services.msc"); // 调起服务
system("pause"); // 让docs命令行执行pause命令,作用是控制台停留。
} // 函数的结束
2. C语言基本类型
#include
#include
main()
{
printf("int类型的长度为: %d\n",sizeof(int));
printf("char类型的长度为: %d\n",sizeof(char));
printf("float类型的长度为: %d\n",sizeof(float));
printf("long类型的长度为: %d\n",sizeof(long));
printf("short类型的长度为: %d\n",sizeof(short));
if(1) {
printf("true\n");
} else{
printf("false\n");
}
system("pause");
}
output:
int类型的长度为: 4
char类型的长度为: 1
float类型的长度为: 4
long类型的长度为: 4
short类型的长度为: 2
true
请按任意键继续. . .
C语言基本类型
char,int,float,double,long,short,signed,unsigned,void
计算类型的长度:sizeof("类型") 返回int类型的长度
占位符:%d
printf("内容");
Java基本数据类型和C语言的一些区别
- Java中char类型的长度为2个字节,C语言中的长度为1个字节
- Java中long类型的长度为8个字节,C语言中的长度为4个字节
- C99标准规定:long类型的长度,不小于整型
- C语言中没有byte类型
- C语言中boolean类型,0表示flase,非0表示true
- signed:有符号数 -128~127 = -27~27-1
- unsigned:无符号数 0~255 = 0~2^8 - 1
- void:无类型,代表任意类型。
5. 输出函数
%d --- int
%ld --- long int
%c --- char
%f --- float
%u --- 无符号数
%hd --- 短整型
%lf --- double
%x --- 16进制输出int或者long int 或者 short int
%o --- 八进制输出
%s --- 字符串
#include
#include
main()
{
char c = 'A';
int i = 12345678;
long l = 123456789;
float f = 3.1415;
double d = 3.1415926535;
printf("c==%c\n",c);
printf("i==%d\n",i);
printf("l==%ld\n",l);
printf("f==%f\n",f);
printf("d==%lf\n",f);
output:
c==A
i==12345678
l==123456789
f==3.141500
d==3.141500
printf("d==%.10lf\n",f);
output:
d==3.1414999962
printf("i==%hd\n",i); // 短整型输出整型
output:
i==24910
printf("cArray内存地址==%#x\n",&cArray);
output:
cArray内存地址==0x62fe30
char* text = "I Love YOU !";
printf("text内容==%s\n",text);
text内容==I Love YOU !
system("pause");
}
- 在C语言中,默认保留小数点后6位,要想保留对应的位数,就需要在%号后面加上
.数字
- int:12345678 转为二进制为:
101111000110000101001110
。24910转为二进制为110000101001110
。可以发现是发生了截取,精度发生了丢失。 - C语言的数组的括号不能写在左边
char[] cArray = {'A','B'};
是错误的。
6. 输入函数
#include
#include
main()
{
// 1.
int i;
printf("亲,请输入你认为最帅的数字: \n");
scanf("%d",&i);
printf("你输入的数字是: %d\n",i);
char cArray[] = {'H','E','L','L','O'};
int j;
for(j = 0; j < 5; j++)
{
printf("cArray[%d]==%c\n",j,cArray[j]);
}
printf("cArray==%s\n",cArray);
// 2.
char cArray2[5];
printf("请输入hello\n");
scanf("%s",&cArray2);
int k;
for(k = 0; k < 5; k++)
{
printf("cArray2[%d] == %c\n",k,cArray[k]);
}
printf("cArray2 == %s\n",cArray2);
// 3.
char cArray3[] = {'a','b','c','d','e','\0'}; // \0代表结束 数组是一块连续的内存空间
printf("cArray3 == %s\n",cArray3);
// 4.
char* text = "I LOVE YOU!";
printf("%s\n",text);
system("pause");
}
output:
亲,请输入你认为最帅的数字:
12
你输入的数字是: 12
cArray[0]==H
cArray[1]==E
cArray[2]==L
cArray[3]==L
cArray[4]==O
cArray==HELLO
请输入hello
hello
cArray2[0] == H
cArray2[1] == E
cArray2[2] == L
cArray2[3] == L
cArray2[4] == O
cArray2 == hello
cArray3 == abcde
I LOVE YOU!
请按任意键继续. . .
7. 指针
#include
#include
/*
* 指针就是内存地址
* 内存地址就是指针
*/
main()
{
// 定义一个int类型的变量i,并且赋值为10
int i = 10;
// 定义一个int类型的一级指针变量p
int* p;
// 把i对应的内存地址赋值给p
p = &i;
// 指针取值*p,把p变量 对应的地址的值取出来
printf("*p == %d\n",*p);
}
output:
*p == 10
13. 数组
/*
数组的介绍:
1.数组的取值
2.数组的取地址
3.数组是一块连续的内存空间
4.数组的首元素地址和数组的地址相同
*/
main()
{
char cArray[] = {'H','E','L','L','O'};
int iArray[] = {1,2,3,4,5};
// 取数组的值
printf("cArray[0]==%c\n",cArray[0]);
printf("cArray[1]==%c\n",cArray[1]);
printf("iArray[0]==%d\n",iArray[0]);
printf("iArray[1]==%d\n",iArray[1]);
// 取内存地址值
printf("cArray地址==%#x\n",&cArray);
printf("cArray[0]地址==%#x\n",&cArray[0]);
printf("cArray[1]地址==%#x\n",&cArray[1]);
printf("cArray[2]地址==%#x\n",&cArray[2]);
// 内存是一块连续的内存空间
printf("iArray地址==%#x\n",&iArray);
printf("iArray[0]地址==%#x\n",&iArray[0]);
printf("iArray[1]地址==%#x\n",&iArray[1]);
printf("iArray[2]地址==%#x\n",&iArray[2]);
printf("iArray[3]地址==%#x\n",&iArray[3]);
// 用指针取值
printf("iArray==%d\n",*iArray);
printf("iArray[0]==%d\n",*iArray+0);
printf("iArray[1]==%d\n",*iArray+1);
printf("iArray[2]==%d\n",*iArray+2);
printf("iArray[0]==%d\n",*(iArray+0));
printf("iArray[1]==%d\n",*(iArray+1));
printf("iArray[2]==%d\n",*(iArray+2));
}
output:
cArray[0]==H
cArray[1]==E
iArray[0]==1
iArray[1]==2
cArray地址==0x62fe40
cArray[0]地址==0x62fe40
cArray[1]地址==0x62fe41
cArray[2]地址==0x62fe42
iArray地址==0x62fe20
iArray[0]地址==0x62fe20
iArray[1]地址==0x62fe24
iArray[2]地址==0x62fe28
iArray[3]地址==0x62fe2c
iArray==1
iArray[0]==1
iArray[1]==2
iArray[2]==3
iArray[0]==1
iArray[1]==2
iArray[2]==3
15. 输入数组
#include
#include
main()
{
// 1. 用户输入数组的长度
printf("请输入数组的长度: \n");
int length;
scanf("%d",&length);
printf("你输入的数组长度为:%d\n",length);
// 2. 根据用户输入的长度创建数组
int iArray[length];
int i = 0;
// 3. 让用户输入数组的值
for(i = 0;i < length;i++)
{
printf("请输入iArray[%d]的值\n",i);
scanf("%d",&iArray[i]);
}
// 4. 把数组内容打印出来
for(i = 0; i < length; i++)
{
printf("iArray[%d]的值为%d\n",i,iArray[i]);
}
}
output:
请输入数组的长度:
3
你输入的数组长度为:3
请输入iArray[0]的值
111
请输入iArray[1]的值
222
请输入iArray[2]的值
333
iArray[0]的值为111
iArray[1]的值为222
##### iArray[2]的值为333