C语言学习注意

不同类型输出:

%d整型输出,%ld长整型输出,

%p指针变量地址,如果数处数据不够8位数,则左边补零,

%o以八进制数形式输出整数,

%x以十六进制数形式输出整数,

%u以十进制数输出unsigned型数据(无符号数)。

%c用来输出一个字符,

%s用来输出一个字符串,

%f用来输出实数,以小数形式输出,

%e以指数形式输出实数,

%g根据大小自动选f格式或e格式,且不输出无意义的零。
————————————————
      %a(%A)         浮点数、十六进制数字和p-(P-)记数法(C99)
      %c             字符
      %d             有符号十进制整数
      %f             浮点数(包括float和doulbe)
      %e(%E)     	 浮点数指数输出[e-(E-)记数法]
      %g(%G)     	 浮点数不显无意义的零"0"
      %i             有符号十进制整数(与%d相同)
      %u             无符号十进制整数
      %o             八进制整数    e.g.     0123
      %x(%X)     	 十六进制整数0f(0F)   e.g.   0x1234
      %p             指针
      %s             字符串
      %%             "%"

1.函数:C中函数传递的是值,不是地址值。不会对原变量进行操作。

例如:1.函数的传值与传址(ab与xy是俩个完全独立的空间,地址是不一样的)

//swap1在被调用的时候,实参传给形参,其实形参是实参的一份临时拷贝
//改变形参,不能改变实参
//形参是在函数调用的时候才实例化,才开辟内存空间
void Swap1(int x, int y)//
{
	int z = 0;
	z = x;
	x = y;
	y = z;
}


void Swap2(int* pa, int* pb)//
{
	int z = 0;
	z = *pa;
	*pa = *pb;
	*pb = z;
}

int main()
{
	int a = 10;
	int b = 20;
	//写一个哈函数 - 交换2个整型变量的值

	Swap1(a, b);//传值调用
	printf("交换前:a=%d b=%d\n", a, b);
	Swap2(&a, &b);//传址调用
	printf("交换后:a=%d b=%d\n", a, b);

	return 0;
}

   c语言库:主要有:IO操作、字符串操作、字符操作、内存操作、时间操作、数学操作、其他操作。

2指针: 指针类型存储不同类型,对指针类型变量操作时,改变的具体值是不一样的:例如:int* p,改变时是操作4个字节, char* cp ,改变操作时操作1个字节。

2.1 野指针:1局部变量内存释放后,指针变为野指针。2 数组越界后

3  分模块开发时:  本地库使用:<>  自定义头文件:  ""

引入本地库:#include  <stdio.h>      引入自己定义的h头文件: #include "add.h"  

4 数组:数组创建, [] 中要给一个常量才可以,不能使用变量

 4.1  sizeof和strlen区别:

 arr2中的abc没有\0(\0为字符串结束标识),arr1中存储的为 “abc\0”

4.2  数组大小: 

4.3 二维数组不能省略列的下标:  int arr[3][] ={{1,2,3,4},{5,6,7,8}}  这种事错误的,但是这种可以:int arr[][4] ={{1,2,3,4},{5,6,7,8}}

4.4  数组传值时,传的是首元素地址值,需要使用数组个数,需要在函数参数中传递,不然获取不到数组个数的。  下面的例子中,  void bubble_sort(int arr[])  函数中 int sz = sizeof(arr)/sizeof(arr[0]);  得到的sz为1    因为 此时传递的是&arr[0] 的地址值,   sizeof(arr) == sizeof(arr[0])

//方法1:
#include <stdio.h>
void bubble_sort(int arr[])
{
 int sz = sizeof(arr)/sizeof(arr[0]);//这样对吗?
    int i = 0;
 for(i=0; i<sz-1; i++)
   {
        int j = 0;
        for(j=0; j<sz-i-1; j++)
       {
            if(arr[j] > arr[j+1])
           {
                int tmp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp;
           }
       }
   }
}
int main()
{
    int arr[] = {3,1,7,5,8,9,0,2,4,6};
    bubble_sort(arr);//是否可以正常排序?  此时传递的是&arr[0] 的地址值
    for(i=0; i<sizeof(arr)/sizeof(arr[0]); i++)
   {
        printf("%d ", arr[i]);
   }
    return 0; }

4.5  数组名的含义:

数组名是数组首元素的地址。(有两个例外)
1. sizeof( 数组名 ) ,计算整个数组的大小, sizeof 内部单独放一个数组名,数组名表示整个数
组。
2. & 数组名,取出的是数组的地址。 & 数组名,数组名表示整个数组。

所以&arr是取得整个数组的地址

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
本项目是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。该系统主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者,包含项目源码、数据库脚本、项目说明等,有论文参考,可以直接作为毕设使用。 后台框架采用SpringBoot,数据库使用MySQL,开发环境为JDK、IDEA、Tomcat。项目经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。 该系统的功能主要包括商品管理、订单管理、用户管理等模块。在商品管理模块中,可以添加、修改、删除商品信息;在订单管理模块中,可以查看订单详情、处理订单状态;在用户管理模块中,可以注册、登录、修改个人信息等。此外,系统还提供了数据统计功能,可以对销售数据进行统计和分析。 技术实现方面,前端采用Vue框架进行开发,后端使用SpringBoot框架搭建服务端应用。数据库采用MySQL进行数据存储和管理。整个系统通过前后端分离的方式实现,提高了系统的可维护性和可扩展性。同时,系统还采用了一些流行的技术和工具,如MyBatis、JPA等进行数据访问和操作,以及Maven进行项目管理和构建。 总之,本系统是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。系统经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值