这几天的代码段
来源:互联网 发布:中国最大的程序员社区 编辑:程序博客网 时间:2024/05/22 11:30
//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------/*//传递指针的指针;可以修改指针的内容#include<stdio.h>#include<stdlib.h>void all(int **arr,int size,int value){int i;*arr=(int *)malloc(size *sizeof(int ));printf("%#x\n",arr);printf("%#x\n",*arr);if(*arr!=NULL){for(i=0;i<size;i++){*(*arr+i)=value;}}//free(*arr);}void main(){int *p=NULL;printf("%#x\n",p);all(&p,5,45);printf("%d\n",p[2]);printf("%#x\n",p);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------///*#include<stdio.h>#include<stdlib.h>void all(int *arr,int size,int value){int i;printf("%#x\n",arr);arr=(int *)malloc(size *sizeof(int ));printf("%#x\n",arr);if(arr!=NULL){for(i=0;i<size;i++){*(arr+i)=value;}}printf("%d\n",*arr);}void main(){int *p=NULL;//int i;printf("%#x\n",p);all(p,5,45);printf("%#x\n",p);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//函数指针的应用#include<stdio.h>int mianji(){int a=3;int b=4;int c;c=a*b;return c;}void main(){typedef int (*f)();f f1;f1=mianji;printf("%d",f1());} //-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//传递函数的指针#include<stdio.h>int add(int num1,int num2){return num1+num2;}int sub(int num1,int num2){return num1-num2;}//typedefint (*ftr)(int,int);int (*ftr)(int ,int );int compute(int (*ftr)(int ,int ),int ,int );void main(){ printf("%d\n",compute(add,1,2)); printf("%d\n",compute(sub,3,5));}int compute(int (*ftr)(int ,int ) ,int num1,int num2){return ftr(num1,num2);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//返回函数指针#include<stdio.h>int add(int num1,int num2){return num1+num2;}int sub(int num1,int num2){return num1-num2;}typedefint (*ftr)(int,int);int compute(ftr,int ,int );ftr select(char opcode){ switch(opcode) { case '+': return add; case '-': return sub; }}int eva(char opcode,int num1,int num2){ftr f1=select(opcode);return f1(num1,num2);}void main(){ printf("%d\n",eva('+',1,5));}int compute(ftr f1 ,int num1,int num2){return f1(num1,num2);}//typedef的用法#include<stdio.h>void main(){typedef int a[2];typedef int *d[3];d g;a f;f[1]=4;g[2]=&f[1];printf("%d--%d--%d",f[1],&f[1],g[2]);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//使用函数指针数组//第一种思想#include<stdio.h>typedef void (*ftr)(); void ss(){printf("%d\n",8);}void aa(){ printf("%d\n",100); }void ab(){ printf("%d\n",10); }ftr f1[]={ss,aa,ab};void main(){ f1[0]();}//第二种思想#include<stdio.h>typedef int (*operation)(int ,int );operation operations[128]={NULL};int add(int num1,int num2){return num1+num2;}int sub(int num1,int num2){return num1-num2;}void in(){operations['+']=add;operations['-']=sub;}int eva(char opcode,int num1,int num2){ // operation ss; //ss=operations[opcode]; //return ss(num1,num2); return operations[opcode](num1,num2);} void main(){ in(); printf("%d\n",eva('-',5,6));}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//比较函数指针ftr f1=add;if(f1==add){printf("函数地址一致是add");}else{printf("函数地址不一致;不是add函数");}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//转换函数指针#include<stdio.h>typedef int (*ptr)(int);typedef int (*ptr1)(int ,int );int add(int a ,int b){return a+b;}//void*不一定能跟函数指针上void *p=add;//这是错的void main(){ptr1 aa=add; ptr bb=(ptr)aa;aa =(ptr1)bb; printf("%d\n",aa(5,6));}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//void指针#include<stdio.h>void main(){void *p; printf("%#x---%d",&p , sizeof(void *)); printf("\n%#x---%d",*&p , sizeof(void *)); //printf("\n%d",*p);error}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------#include<stdio.h>typedef int (*ptr1)(int ,int );int add(int a ,int b){return a+b;}void main(){void *p;ptr1 aa=add; p=(void*)aa;//printf("%d\n",aa(5,6));aa=(ptr1)p; printf("%d\n",aa(5,6));}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//作为参数的数组声明#include<stdio.h>void main(){char hello[]="hello";printf("%s\n",hello);//在这里数组作为参数和数组首地址作为参数是一样的效果printf("%s\n",&hello);printf(hello);printf("\n");}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//混淆指针和指针所指向的数据#include<stdio.h>void main(){char *p,*q;p="sssaa";//实际含义是P指向一个内容为“sssaa\0”的字符数组的指针printf(p);//*(p+1)='a';//这样定义的字符串常量只有只读属性ANSI C中标准禁止对string literal 作出修改//printf(p);printf("\n%#x\n",p);//含义是p指向的那个数组的首地址printf("%#x\n",&p);//含义是p的内存地址q=p;//复制指针并不同时复制指针所指向的数据 //q[1]='Y';//errorprintf(q);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------#include<stdio.h>void main(){int i;int a[6];for(i=0;i<=6;i++){ a[i]=0;}printf("%d",a[6]);//for(i=0;i<=6;i++)//{ // printf("%d",a[i]);//}}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//由0转换而来的指针不等于任何有效的指针,不能用该指针指向内存中的内容if(p==(char *)0)//trueif(strcmp(p,(char *)0)==0)//false//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//函数功能为:将一个长度无规律的输入数据送到缓冲区中(即一块能容纳N个字符的内存)中去,//------每当这块内存被填满时,就将缓冲区的内容写出//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------#include<stdio.h>void main(){float a=3.99999999;printf("%f",a);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------#include<stdio.h>void main(){size_t f=100; printf("%d",f);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------#include<stdio.h> int main(){int k;k=sizeof('A');printf("%d\n",k);//中在c语言k的大小为4,c++中它的大小为1.//system("pause");return 0; }//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//字符串的拼接#include<stdio.h>#include<stdlib.h>#include<string.h>void main(){char *error="ERROR: ";char *errorp="one world one dream!";char *ftr=(char *)malloc(strlen(error)+strlen(errorp)+1);strcpy(ftr,error);strcat(ftr,errorp);printf("%s\n",error);printf("%s\n",errorp);printf("%s\n",ftr);}//-------------------------------华丽分割线 *#)- o -(#* -----------------------------------------//字符串的拼接----error这个是错的#include<stdio.h>#include<stdlib.h>#include<string.h>void main(){char * error="error";char *errorp="kkkkkkkkkkkkkkkkkkk";strcat(error,errorp);printf("%s\n",error);printf("%s\n",errorp);}*/
0 0
- 这几天的代码段
- 添段代码可以实现增加附件的功能,这几天一直在搞这个
- 过几天就要去公司报道了,记录一下这段时间找工作的经历....
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- 数据段、代码段、堆栈段、BSS段的区别
- java基础学习笔记——String(1)
- 欢迎使用Markdown编辑器写博客
- 【ffmpeg + VS2010】编译包含libavutil\common.h后出现找不到inttypes.h的问题
- String类的用法
- Bootstrap插件scrollspy源码的学习
- 这几天的代码段
- 上下文切换
- 设计模式之-简单工厂模式
- java中extends和implements的区别
- 自定义隐式Intent弹出框,重写createChooser方法
- 初学ecshop遇到的问题
- Valid Palindrome
- Java开发Web Service客户端技巧:wsimport、jaxws-maven-plugin、整合Spring
- PHP Yii gii自动生成的模块代码无法执行,报错:Internal Server Error include(Controller.php)