2

C语言基础入门详解一_51CTO博客_c语言是编程基础吗

 9 months ago
source link: https://blog.51cto.com/u_15880918/6989781
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

C语言基础入门详解一

精选 原创

IT路宇 2023-08-07 07:41:40 ©著作权

文章标签 c语言 开发语言 android JNI C语言入门 文章分类 代码人生 阅读数142

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。
👉点击跳转到教程

前言:

初识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语言基础入门详解一_JNI

二、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语言基础入门详解一_开发语言_02

三、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"); 
}

输出到控制台内容如下:

C语言基础入门详解一_JNI_03

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"); 
}

输出到控制台内容如下:

C语言基础入门详解一_C语言入门_04

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语言基础入门详解一_JNI_05

四、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语言基础入门详解一_JNI_06

五、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()函数控制台输出的结果

C语言基础入门详解一_c语言_07

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

C语言基础入门详解一_c语言_08

七、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");
}

运行结果如下:

C语言基础入门详解一_C语言入门_09

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

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

2、形参必须是指针变量

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK