#include<mysql/mysql.h>
#include<stdio.h>
intmain()
{
MYSQL*conn;
MYSQL_RES*res;
MYSQL_ROWrow;
char*server="localhost";//本地连接
char*user="root";//
char*password="525215980";//mysql密码
char*database="student";//数据库名
char*query="select*fromclass";//需要查询的语句
intt,r;
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))
{
printf("Errorconnectingtodatabase:%s ",mysql_error(conn));
}else{
printf("Connected... ");
}
t=mysql_query(conn,query);
if(t)
{
printf("Errormakingquery:%s ",mysql_error(conn));
}else{
printf("Querymade... ");
res=mysql_use_result(conn);
if(res)
{
while((row=mysql_fetch_row(res))!=NULL)
{
//printf("num=%d ",mysql_num_fields(res));//列数
for(t=0;t<mysql_num_fields(res);t++)
printf("%8s",row[t]);
printf(" ");
}
}
mysql_free_result(res);
}
mysql_close(conn);
return0;
}
(1)c语言数据关联扩展阅读
C语言使用注意事项:
1、指针是c语言的灵魂,一定要灵活的使用它:
(1)、指针的声明,创建,赋值,销毁等
(2)、指针的类型转换,传参,回调等
2、递归调用也会经常用到:
(1)、递归遍历树结构
(2)、递归搜索
‘贰’ c语言把几个数组的数据连接起来
#include<stdio.h>
voidmain()
{
unsignedlonga[4]={0x12345678,0x87654321,0x23456789,0x98765432};
unsignedcharb[16]="";
intj,k;
inti;
j=0;
for(i=0;i<4;i++){
for(k=3;k>-1;k--)
b[j++]=(a[i]>>(k*8))&0xff;
}
for(i=0;i<16;i++)
printf("%x",b[i]);
return;
}
‘叁’ C语言中数据结构含义
数据结构(Data Structure)是带有结构的数据元素的集合,它是指数据元素之间的相互关系,即数据的组织形式。我们把数据元素间的逻辑上的联系,称为数据的逻辑结构。常见的数据结构有线性结构、树型结构、图型结构。数据的逻辑结构体现数据元素间的抽象化相互关系,并不涉及数据元素在计算机中具体的存储方式,是独立于计算机的。
然而,讨论数据结构的目的是为了在计算机中实现对数据的操作,因此还需要研究如何在计算机中表示数据。数据的逻辑结构在计算机存储设备中的映像被称为数据的存储结构,也可以说数据的存储结构是逻辑结构在计算机存储器中的实现,又称物理结构。数据的存储结构是依赖于计算机的。常见的存储结构有顺序存储结构、链式存储结构等。
通常所谓的“数据结构”是指数据的逻辑结构、数据的存储结构以及定义在它们之上的一组运算。
‘肆’ C语言与数据库的关系
C语言是一门编程语言,而数据库则是数据的集合。
1、C语言是一门通用计算机编程语言,应用广泛,用它可以开发数据库管理软件,也可以通过C语言借助于SQL语句来操作数据库。
2、数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。一般来数据库都需要数据库管理软件,比如acess、oracle等等,这些大型并且对执行效率要求较高的软件,往往都是C语言开发的。
‘伍’ 关于C语言中联合类型数据
正确答案是C。
比较猥琐的做法就是正确答案肯定在C、D之间,而联合变量的定义是
union{数据类型1 参数;数据类型2 参数……}每次只能引用其中的一个参数成员,因为联合类型数据是在内存中共享一段内存长度的,当你存入一个数据时,其他的数据就没有内存可以存放。故答案为C。
至于A,原因还是内存长度只能存放一个值,故即使你给联合数据类型里面所有成员放上数据,还是只有一个成员(最后存入的那个成员,之前存的被“冲”掉)中有值,故不能应用所有变量(结构体可以)。
而B这是一个规定,没有为什么,记住就可以了。
‘陆’ C语言中数据类型所占字节数与它取值范围的关系
C语言中的数据类型,简单的可以分为整数类型和浮点数类型。所占字节数与取值范围的关系实际上是整数编码和浮点数编码的问题,整数编码的三种方式是原码、反码、补码,很容易理解,浮点数的编码格式使用的是IEEE754编码。
1、整数编码以字符类型为例。
字符类型占1个字节,共8位二进制bit位,因此排列组合数,有2^8 = 256种编码的方法。如果表示无符号字符类型,那一般来说表示【0,255】这256个数。
如果表示有符号char类型,如果表示正数,那最高位符号为0,因此可表示的最正整数是:
0-111 1111 ,转化成十进制就是127。同样的道理,符号为1表示负数。最小的负数是
1-000 0000,转化成十进制数就是-128,因此有符号char类型表示的范围是[-128,127]。
一般来说,假设整型数据类型占的二进制位数n,如果表示无符号整数则取值范围是[0,2^n-1],如果表示有符号整数,【-2^(n-1) , 2^(n-1) - 1] 。
2、浮点数类型
浮点数编码一般采用的是IEEE754的编码规则,这个编码格式主要指出了浮点数有效数字、指数以及符号位所占的二进制位数。简单概括为:
格式 长度 符号位 指数位 尾数位 有效位数 指数偏移 尾数说明
单精度 32 1 8 23 24 127 有一位隐含位
双精度 64 1 11 52 53 1023 有一位隐含位
扩展双精度 80 1 15 64 64 16383 没有隐含位
注意:扩展双精度格式没有隐含位,因此它的有效位数与尾数位数一致,而单精度和双精度格式均有一位隐含位,因此它们的有效位数比尾数位数多1。
一般很少自己手动来算浮点数的取值范围,可以使用如下程序来计算。
#include<stdio.h>
typedefstructFP_SINGLE
{
unsigned__int32fraction:23;
unsigned__int32exp:8;
unsigned__int32sign:1;
}fp_single;
typedefstructFP_DOUBLE
{
unsigned__int64fraction:52;
unsigned__int64exp:11;
unsigned__int64sign:1;
}fp_double;
typedefstructFP_EX_DOUBLE
{
unsigned__int64fraction;
unsigned__int32exp:15;
unsigned__int32sign:1;
}fp_ex_double;
intmain()
{
floatx;
fp_single*fp_s=(fp_single*)&x;
fp_s->sign=0;
fp_s->exp=0xfe;
fp_s->fraction=0x7fffff;
printf("float最大数:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0x1;
fp_s->fraction=0x0;
printf("float最小数:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0;
fp_s->fraction=0x1;
printf("float最小弱规范数:%le ",(double)x);
doubley;
fp_double*fp_d=(fp_double*)&y;
fp_d->sign=0;
fp_d->exp=0x7fe;
fp_d->fraction=0xfffffffffffff;
printf("double最大数:%le ",y);
fp_d->sign=0;
fp_d->exp=0x1;
fp_d->fraction=0x0;
printf("double最小数:%le ",y);
fp_d->sign=0;
fp_d->exp=0;
fp_d->fraction=0x1;
printf("double最小弱规范数:%le ",y);
charch[10];
fp_ex_double*fp_ex_d=(fp_ex_double*)ch;
fp_ex_d->sign=0;
fp_ex_d->exp=0x7ffe;
fp_ex_d->fraction=0xffffffffffffffff;
//不知道扩展双精度浮点数如何输出,
//不过可以用od跟踪,然后找到ch[0]的地址,在数据窗口中选择浮点80为长双精度,
//就可以看到数值了。
fp_ex_d->sign=0;
fp_ex_d->exp=0x1;
fp_ex_d->fraction=0x8000000000000000;
fp_ex_d->sign=0;
fp_ex_d->exp=0;
fp_ex_d->fraction=0x1;
return0;
}
‘柒’ C语言怎样实现两个整形数据的连接,比如说a[3]={0,1,2} b[3]={3,4,5} c[6]={0,1,2,3,4,5}
那就是合并,
先让第一个数组的每一个元素和第二个数组的所有元素比较,若没有,相同的就直接放到c数组中,否则,就只放一次,做一个标记,说明此数字已经放进去了,知道所有的数都放完为止
‘捌’ C语言 数据的关联效应
#include<stdio.h>
#include<stdlib.h>
structnum
{
intunit;//存储读入整数的个位
intdecade;//存储读入整数的十位
}num;
intmain(intargc,charconst*argv[])
{
inti,t,flag=1;//flag为初始1,表示默认是都有关联
structnuma[4];
for(i=0;i<4;++i)
{
scanf("%d",&t);
a[i].unit=t%10;
a[i].decade=t/10;
}
for(i=0;i<3;++i)
if(a[i].unit!=a[i+1].decade)
flag=0;//置为0,表示有不关联的两个数
if(flag==1)printf("yes! ");
elseprintf("no! ");
return0;
}
‘玖’ 数据库原理和c语言关联大吗
数据库原理和c语言没什么关系,操作数据库的是sql语言;对于第二个问题,如果学过c语言和数据结构,学java会要快一些,没有的话也是可以学的,只是要选对教材,多用点心了。