#include
/******************值传递*************************/
void fun_1(int a,int b) //声明交换函数
{
int temp; //三杯水交换
temp = a;
a = b;
b = temp;
}
/******************值传递*************************/
void fun_2(int *a,int *b) //声明交换函数
{
int *temp; //三杯水交换 仅仅是指针的指向在进行交换
temp = a;
a = b;
b = temp;
}
/******************地址传递*************************/
void fun_3(int *a,int *b) //声明交换函数
{
int temp; //三杯水交换 指针通过保存的地址间接访问
//变量所储存的值,对这些值进行交换
temp = *a;
*a = *b;
*b = temp;
}
/******************值返回*************************/
int fun_4(int a,int b) //声明函数
{
int c;
c = a - b;
return c; //返回变量c的值
}
/******************地址返回*************************/
int *fun_5(int a,int b) //声明函数
{
int c;
int *p = &c;
c = a - b;
return p; //返回指针变量p的值
}
int main(int argc, const char *argv[])
{
int a = 20,b = 10,c = 0;
int *p;
fun_1(a,b);
printf("a = %d b = %d\n",a,b); //调用fun_1 后输出a,b的值,看是否交换了
fun_2(&a,&b);
printf("a = %d b = %d\n",a,b); //调用fun_2 后输出a,b的值,看是否交换了
fun_3(&a,&b);
printf("a = %d b = %d\n",a,b); //调用fun_3 后输出a,b的值,看是否交换了
c = fun_4(a,b); //用变量c接收fun_4返回的值
printf("fun_4(a,b) = %d\n",fun_4(a,b)); //调用fun_4 后输出返回的值
printf("c = %d\n",c);
p = fun_5(a,b); //用指针变量p接收fun_5返回的地址
printf("fun_5(a,b) = %d\n",*fun_5(a,b)); //调用fun_5 后输出返回的地址所保存的值
printf("*p = %d\n",*p);
return 0;
}
#include
int a; //未初始化的全局变量储存在.bss
int b = 1; //已初始化的全局变量储存在.data
static int c; //未初始化的静态变量储存在.bss
static int d = 1; //已初始化的静态变量储存在.data
char arr[100] = "hello" //已初始化的全局变量储存在.data,而"hello"储存在.ro
char *p = "hello" //已初始化的全局变量储存在.data,而"hello"储存在.ro
int main(int argc, const char *argv[])
{
int q; //在栈区,初始值为随机值
int w = 1; //在栈区,初始值为1
static t; //未初始化静态局部变量,在.bss
static y = 1; //初始化静态局部变量,在.data
char e[100] = "hello"; //e在栈区,"hello"在.ro
char *r = "hello"; //r在栈区,"hello"在.ro
int *p1 = (int *)malloc(sizeof(int)); //p1在栈区,向堆区申请四个字节的空间
return 0;
}
#include
#include
#include
int main(int argc, const char *argv[])
{
int *p0 = (int *)malloc(sizeof(4)); //向堆区申请四个字节大小的空间
printf("*p0 = %d\n",*p0); //输出默认值
int *p1 = (int *)malloc(sizeof(int)); //向堆区申请一个int大小的空间
*p1 = 520; //给*p1赋值
printf("*p1 = %d\n",*p1); //输出*p1的值
int *p2 = (int *)malloc(sizeof(4)*5); //向堆区申请五个连续的四个字节大小的空间
for(int i=0;i<5;i++)
printf("*p2 = %d\n",*p2); //输出默认值
free(p0); //释放p0的空间
p0 = NULL; //让p0指向空
free(p1); //释放p1的空间
p1 = NULL; //让p1指向空
free(p2); //释放p2的空间
p2 = NULL; //让p2指向空
return 0;
}
#include
#include
int *p; //定义一个全局变量
/***************申请堆区空间********************/
void *shen()
{
p = (int *)malloc(sizeof(int)*6); //申请堆区空间
}
/***************输入学生成绩********************/
void ru()
{
int i;
for(i=0;i<6;i++) //用for循环输入学生成绩
{
printf("请输入学生的成绩:");
scanf("%d",(p+i));
}
}
/***************输出学生成绩********************/
void chu()
{
int i;
printf("排序后:"); //用for循环输出学生成绩
for(i=0;i<6;i++)
{
printf("%-4d",*(p+i));
}
putchar(10);
}
/***************对学生成绩升序排序***************/
void pai()
{
int temp,max=*p,max_1,i,j;
for(i=0;i<5;i++)
{
max=*p; //让每次进入循环时max的值都是未排序的第一个
max_1=0; //让每次进入循环时max_1的值都是未排序的第一个
for(j=0;j<6-i;j++)
{
if(*(p+j)>max) //判断循环到的值是否比max大
{
max=*(p+j); //如果大就将值给到max,下标给到max_1
max_1=j;
}
}
if(max_1!=j-1) //如果最大的值不是未排序的最后一个
{ //就将最大的值和未排序的最后一个交换
temp = *(p+max_1);
*(p+max_1) = *(p+j-1);
*(p+j-1) = temp;
}
}
}
/******************主函数********************/
int main(int argc, const char *argv[])
{
shen(); //调用申请空间函数
ru(); //调用输入函数
pai(); //调用排序函数
chu(); //调用输出函数
free(p); //释放p的空间
p = NULL; //让指针p指向空
return 0;
}
#include
#include
typedef unsigned short int uint16; //将无符号短整型重命名为uint16
typedef int * ptr_i; //将int *重命名为ptr_i
typedef char string[10]; //将char [5]重命名为string
int main(int argc, const char *argv[])
{
uint16 num = 520; //定义num
printf("sizeof(num) = %ld\n",sizeof(num)); //查看num所占字节大小
printf("num = %d",num);
ptr_i p1 = NULL; //让指针指向空
printf("sizeof p1 = %ld\n",sizeof(p1));
string s1; //定义长度为10的数组
strcpy(s1,"hello");
printf("sizeof s1 = %ld\n", sizeof(s1));
printf("strlen s1 = %ld\n", strlen(s1));
return 0;
}
#include
#include
struct sp //商品
{
char name[40]; //名称
char position[40]; //产地
double price; //单价
double weight; //重量
}
int main(int argc, const char *argv[])
{
struct sp g1 ; //定义一个变量存储信息
printf("请输入商品的名称:");
scanf("%s", g1.name);
printf("请输入商品的产地:");
scanf("%s", g1.position);
printf("请输入商品的单价:");
scanf("%lf", &g1.price);
printf("请输入商品的重量:");
scanf("%lf", &g1.weight);
printf("商品信息:%s %s %.2lf %.2lf\n", g1.name, g1.position, g1.price, g1.weight); //输出
/***************************************************************************************************************/
struct sp *ptr = (struct sp*)malloc(sizeof(struct sp)); //向堆区申请能够存储sp大小的空间
strcpy(ptr -> name,"三鹿"); //给名称赋值
strcpy(ptc -> position,"中国"); //给产地赋值
ptr -> price = 300; //给单价赋值
ptr -> weight = 350; //给重量赋值
return 0;
}