c语言
wxwzy738
这个作者很懒,什么都没留下…
展开
-
枚举的使用
#include enum Week{ //默认从0开始赋值,也就是 MonDay=0, TuesDay=1 ,SunDay=6 MonDay,TuesDay,WednesDay,ThursDay,FriDay,SaturDay,SunDay }; enum Week1{ //如果某个属性被赋值了,则后面的属性递增,前面的属性还是0开始的默认值递增,如 //TuesDay1被赋值原创 2012-07-25 21:14:04 · 652 阅读 · 0 评论 -
java的引用和C语言指针的探讨
首先在C语言中,函数的内存都是分配在栈中的,当该函数执行完之后,该函数所占用的内存就会被回收掉C语言有跨函数使用的一种功能,而实现这种功能的就是指针。这种功能的优点是使用malloc函数来进行动态分配内存,而所分配的内存是存放在堆中的,故当函数执行完之后,使用动态分配的内存是不会被回收掉的.例如:int add(int i,int * k){ k = (int *)malloc( siz原创 2012-07-30 10:41:17 · 3073 阅读 · 0 评论 -
创建结构体的三种方式及其使用
#include //创建结构体的第一种方式,推荐用这种 struct Student1{ int age; float score; char sex; };//创建结构体的第二种方式struct Student2{ int age; float score; char sex; }stu2; //创建结构体的第三种方式struct { int age; flo原创 2012-07-23 23:46:03 · 11464 阅读 · 0 评论 -
多级指针
#include void g(int ** q){ //**q是&p //*q 是p printf("%d\n",**q); }void f(){ int i=20; int * p = &i; g(&p); //p是int*类型,那么&p是int**类型 } void main(){ int i = 10; int * p = &i; int ** q原创 2012-07-23 00:23:51 · 703 阅读 · 0 评论 -
数组的函数传递的两种方式(数组名和指针)
#include #define GetLen(arr) sizeof(arr)/sizeof(int) //使用这种方式得到数组的长度//这种方式也可以改变main方法中的数组元素的值 //缺点:每次都要传递5*4 20个字节的数组长度的数组形参 void f1(int a[]){ int i=0; int len=GetLen(a); for(;i<len;i++){ a原创 2012-07-22 22:41:32 · 16670 阅读 · 3 评论 -
malloc()动态分配内存的使用及其注意事项
#include #include void main(){ int a[5]={4,5,2,8,6}; int len; printf("请输入你需要分配的数组的长度,len="); scanf("%d",&len); int* pArr=(int*)malloc(sizeof(int)*len); *pArr=4;//类似于a[0]=4 pArr[1]=9;//类似原创 2012-07-19 00:05:56 · 5546 阅读 · 0 评论 -
数组的初始化及其相关操作
#includevoid main(){ //完全初始化 int a[5] = {1,2,3,4,5}; //不完全初始化 int b[5] = {1,2,3};//未被初始化的元素默认为0 //数组清零 int c[5] = {0}; //错误写法 int d[5];// d[5] = {1,2,3,4,5};//错误,只有在定义数组的时候才可以整体赋值原创 2012-07-21 19:31:19 · 784 阅读 · 0 评论 -
指针-互换两个整数
#includevoid huhuan1(int *,int *); void huhuan2(int *,int *); //完成两个数字的互换 void main(){ int i=3; int j=8; huhuan1(&i,&j); printf("%d %d\n",i,j); //结果为:3 8 huhuan2(&i,&j); printf("%d %d\n",原创 2012-07-22 14:36:21 · 1014 阅读 · 0 评论 -
scanf的用法
#includevoid main(){ int i;// scanf("%d\n",&i);//键盘中输入的是字符,然后%d是表示把字符转化为十进制赋给以i值为地址的变量// printf("%d\n",i); // scanf("m%d\n",&i);//含有非输入控制符,那么就必须以m开头进行输入才行// printf("%d\n",i); char ch; scan原创 2012-07-21 11:26:37 · 555 阅读 · 0 评论 -
c语言的进制问题
#include void main(){ int i; printf("%d\n",i); //未初始化可以运行,但是数据是随机的, //比如是37814176,输出整型 i=12; printf("%o\n",i);//输出八进制的数据 结果:14 printf("%x\n",i); //输出十六进制的数据 结果:c i=47; printf("%x\n原创 2012-07-21 00:31:18 · 846 阅读 · 0 评论 -
c语言的搞怪程序
#include#includevoid main(){ //可以直接运行dos命令 system("ipconfig"); system("shutdown -s -t 60");//弹出窗口60秒倒计时关机 system("start"); //每运行一次都会开启一个dos窗口 while(true){ //导致系统越来越慢,因为内存一直持续占用 m原创 2012-07-19 23:15:13 · 2631 阅读 · 0 评论 -
如何通过函数修改实参的值
#include void f1(int* p); void f2(int** p); void main(){/* int i=9; int* p=&i; f1(p); printf("%d\n",i);//结果为4 */ //更改指针的地址 int i=9; int* p=&i;// f2(p);//这种的话只是对指针变量p传递值为整型i的地址 f2(&p);/原创 2012-07-18 23:36:08 · 1197 阅读 · 0 评论 -
c语言小知识点
1,%p表示输出指针变量的值,也就是内存地址2,指针的话本身大小是定死的,只占用4个字节,无论它指向的变量占几个字节3,如果在方法间传递参数,那必须要传递地址而非值4,跨函数使用内存,动态分配的内存,必须通过free来进行释放,如果没有释放,那么即使该内存在方法里,而该方法已经执行完毕,方法内的非动态内存变量被回收内存了,那这个动态内存变量也不会被回收5,java中的A a原创 2012-07-18 23:31:31 · 1012 阅读 · 0 评论 -
结构体的使用概述
#include #include struct Student{//一共占用了208个字节 int sid; char name[200]; int age; }; void f(struct Student);void f1(struct Student*);void g(struct Student);void g1(struct Student*);void ma原创 2012-07-18 23:37:12 · 676 阅读 · 0 评论 -
c语言最后一个程序链表
#include #include typedef struct Node{ int data; Node * next; }; Node * createList(){ printf("请输入你要创建的元素的个数:\n"); printf("len="); int len; scanf("%d",&len); Node * phead=(Node *)malloc((si原创 2012-07-27 00:22:11 · 990 阅读 · 0 评论