C语言基础入门详解一

简介: C语言基础入门详解一

前言:

初识C语言

//#include 相当于java的import,stdio全称:standard input$output 标准的输入输出 .h头文件的后缀,包含一些函数 
#include <stdio.h> 
//导入的标准的C语言函数库 
#include <stdlib.h> 
main() //相当于Java的public static void main(String[] args) 
{//函数的开始 
  printf("hello,world! \n"); //printf(内容)输出函数,相当于Java的System.out.println("hello,world!"); \n是回车换行 
  system("calc"); //调起计算器
  system("mspaint"); //调起画板
  system("services.msc");//调起服务 
  system("java Hello"); //调用字节码 
  system("pause"); //让docs命令行执行pause命令,作用是控制台停留。 
}//函数的结束 

一、C语言基本数据类型详解

#include<stdio.h>
#include<stdlib.h>
/**
  C语言基本类型
  char,int,float,double,long,short,signed,unsigned,void
  计算机类型的长度:sizeof("类型") 返回int类型的长度
  占位符:%d
  printf("内容"); 
  Java数据类型和C语言基本数据类型的区别:
  1.Java中char类型的长度为2个字节,C语言中的长度为1个字节 
  2.Java中long类型的长度为8个字节,C语言中的长度为4个字节
  C99标准:long类型的规定,不小于整形。
  3.C语言中没有byte
  4.C语言中没有boolean类型,0表示false,非0表示true 
  5.signed:有符号:-128~127 =-2^7~2^7-1 
  6.unsiged:无符号:0~255  =0~2^8-1
  7.void:无类型,代表任意类型 
**/
main()
{
  printf("int类型的长度为:%d\n",sizeof(int));
  printf("char类型的长度为:%d\n",sizeof(char));
  printf("float类型的长度为:%d\n",sizeof(float));
  printf("double类型的长度为:%d\n",sizeof(double));
  printf("long类型的长度为:%d\n",sizeof(long));
  printf("short类型的长度为:%d\n",sizeof(short));
  printf("signed类型的长度为:%d\n",sizeof(signed));
  printf("unsigned类型的长度为:%d\n",sizeof(unsigned));
  printf("void类型的长度为:%d\n",sizeof(void));
  if(-1){
    printf("true\n");
  } else{
    printf("false\n");
  }
  system("pause");    
} 

输出到控制台内容如下:

二、C语言输出函数详解

#include<stdio.h>
#include<stdlib.h>
/**
输出函数
printf("你要输出的内容");
%d  - int
%ld - long int
%c - char
%f - float
%u - 无符号数 
%hd - 短整型 
%lf - double
%x - 十六进制输出int,或者long int 或者short int
%o - 八进制输出
%s - 字符串 
printf("你要输出的内容对应的占位符");
在C语言中,默认保留小数点后6位 
要想保留对应的位数,就需要在百分号后边加上,.数字 
十进制:12345678 
二进制 101111000110000101001110
               0110000101001110
不同的类型,要用不同的占位符去输出,否则精度丢失 
*/ 
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==%.3f\n",f); 
  printf("d==%.9lf\n",d); 
  printf("i==%hd\n",i);
  //C语言的数组的括号不能写在左边 
  char cArray[]={'A','B'}; 
  printf("cArray的内存地址==%#x\n",&cArray);
  char* text="I love you";
  printf("cArray的内容==%s\n",text);
  system("pause");
} 

输出到控制台内容如下:

三、C语言输入函数详解

1.输入函数.c文件

#include<stdio.h>
#include<stdlib.h>
/**
输入函数
scanf("占位符",内存地址)
%d  - int
%ld  - long int
%c  - char
%f  - float
%u  - 无符号数 
%hd  - 短整数
%lf  - double
%x - 十六进制输出int 或者long int 或者short int 
%o  - 八进制输出
%s  - 字符串 
System.in();
*/ 
main(){
  int i;
  printf("请输入的数字:\n");
  scanf("%d",&i);
  printf("您输入的数字是:%d\n",i);
  //输入 在C语言中没有String类型,但是可以用char数组来表示 
  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);
  system("pause"); 
} 

输出到控制台内容如下:

2.输入函数2.c文件

#include<stdio.h>
#include<stdlib.h>
/**
输入函数
scanf("占位符",内存地址)
%d  - int
%ld  - long int
%c  - char
%f  - float
%u  - 无符号数 
%hd  - 短整数
%lf  - double
%x - 十六进制输出int 或者long int 或者short int 
%o  - 八进制输出
%s  - 字符串 
System.in();
*/ 
main(){
  char cArray[5]; 
  printf("请输入HELLO: \n");
  scanf("%s",&cArray);
  int j;
  for(j=0;j<5;j++){
    printf("cArray[%d]==%c\n",j,cArray[j]);
  } 
  printf("cArray== %s\n",cArray);
  system("pause"); 
} 

输出到控制台内容如下:

3.输入函数3.c文件

#include<stdio.h>
#include<stdlib.h>
/**
输入函数
scanf("占位符",内存地址)
%d  - int
%ld  - long int
%c  - char
%f  - float
%u  - 无符号数 
%hd  - 短整数
%lf  - double
%x - 十六进制输出int 或者long int 或者short int 
%o  - 八进制输出
%s  - 字符串 
System.in();
*/ 
main(){
  char cArray[]={'a','b','c','d','e','\0','a','b'}; //\0代表结束
  //数组是一块连续的内存空间 
  printf("cArray==%s\n",cArray);
  //char类型的指针 
  char* text="I love you!!";
  printf("text==%s\n",text); 
  system("pause"); 
} 

输出到控制台内容如下:

四、C语言指针的初步认识

#include<stdio.h>
#include<stdlib.h>
/**
  指针就是内存地址
  内存地址就是指针 
*/
main(){
  //定义一个int类型的变量i,并且赋值为10 
  int i=10;
  //定义一个int类型的一级指针变量p 
  int* p;
  //把i对应的地址赋值给p变量
  p = &i;
  //指针取值*p:把p变量对应的地址的值取出来
  printf("*p==%d\n",*p); 
  system("pause");
} 

输出到控制台内容如下:

五、C语言指针的深入理解

#include<stdio.h>
#include<stdlib.h>
/**
  指针就是内存地址
  内存地址就是指针 
*/
main(){
  int i = 100;
  int* p = &i;
  //第一个实验:如果修改i值,P值有变化吗? 
//  printf("修改i值前,p的值是:%#x\n",p); //修改i值前,p的值是:0x62fe14
//  i=200;
//  printf("修改i值后,p的值是:%#x\n",p);//修改i值后,p的值是:0x62fe14
  //第二个实验:如果修改p值,i值有变化吗?
//  printf("修改i值前,i的值是:%d\n",i);  //修改i值前,i的值是:100
//  int j = 200; 
//  p=&j;
//  printf("修改i值后,i的值是:%d\n",i); //修改i值后,i的值是:100 
//第三个实验:如果修改i值,*P值有变化吗? 
//  printf("修改i值前,*p的值是:%d\n",*p); //修改i值前,*p的值是:100
//  i=200;
//  printf("修改i值后,*p的值是:%d\n",*p); //修改i值后,*p的值是:200
  //第四个实验:如果修改p值,i值有变化吗?
  printf("修改*p值前,i的值是:%d\n",i); //修改*p值前,i的值是:100
  *p=200;
  printf("修改*p值后,i的值是:%d\n",i);//修改*p值后,i的值是:200
  system("pause"); 
}

六、C语言中互换两个数字

#include<stdio.h>
#include<stdlib.h>
/**
  互换两个数 
*/ 
void switch1(int a,int b){ //传值无法改变值 
  int temp = a;
  a = b;
  b = temp;
  printf("sitch中 a地址==%#x\n",&a); 
  printf("sitch中 b地址==%#x\n",&b);
}
void switch2(int* a,int* b){ //传地址,可以改变值 
  int temp = *a;
  *a = *b;
  *b = temp;
  printf("sitch2中 a地址==%#x\n",a); 
  printf("sitch2中 b地址==%#x\n",b);
}
main(){
  int a = 100;
  int b = 200;
  printf("main中 a地址==%#x\n",&a); 
  printf("main中 b地址==%#x\n",&b);
  printf("a==%d\n",a);
  printf("b==%d\n",b);
  switch1(a,b);
//  switch2(&a,&b);
  printf("a==%d\n",a);
  printf("b==%d\n",b);
  system("pause");
}

执行switch1()函数控制台输出的结果

执行switch2()函数控制台输出的结果

七、C语言中函数返回多个值

/**
  返回多个值 
*/ 
void close(int* a,int* b){
  *a=0;
  *b=0;
}
main(){
  //一键关闭GPS和wifi
  //1代表的是开,0代表的是关闭 
  int a = 1;
  int b = 1;
  close(&a,&b);
  printf("a==%d\n",a);
  printf("b==%d\n",b); 
  system("pause");
}

运行结果如下:

注意:

通过被调函数修改主调函数普通变量的值

1、实参必须是普通变量的地址

2、形参必须是指针变量

3、被调函数中通过修改 *形参名的方式修改主调函数相关变量的值。


目录
相关文章
|
2月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
2月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
39 1
|
3月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
56 4
【C语言入门】初识C语言:掌握编程的基石
|
3月前
|
存储 Java 程序员
【C语言入门】C语言入门:探索编程世界的基础概念
【C语言入门】C语言入门:探索编程世界的基础概念
70 2
|
3月前
|
前端开发 C语言 C++
C语言入门02---环境搭建
C语言入门02---环境搭建
|
3月前
|
编译器 C语言 C++
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
|
4月前
|
存储 Web App开发 算法
c语言的简单入门
熟悉c语言(简单入门)
|
4月前
|
JavaScript C语言
|
4月前
|
存储 人工智能 Java
|
4月前
|
存储 程序员 Go
下一篇
无影云桌面