C语言基础
xueyul
这个作者很懒,什么都没留下…
展开
-
关于预处理,和结构体的10个问题
1. 内存的分配方式有哪些?1)从静态存储区域分配。内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在,如全局变量,static变量等。2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时,这些存储单元自动被释放。3)从堆上分配,亦称动态内存分配。程序运行时用malloc或news申请所需要的内存,程序员自己负责在何时用free或dele原创 2018-01-30 20:09:27 · 805 阅读 · 0 评论 -
C语言 :数组
1.数组的下标: 在C语言中数组的下标是从0开始,例如 :Int a[Max]; Max是编译时可知的值,它的元素是从a[0]到a[Max-1];2.数组后面第一个元素的地址是否可以使用: 数组后面第一个元素的地址可以使用但不可以查看。例如果写如下语句: Int i, a[Max], j; i和j都有可能数组a最后一个元素后面的地址中,即可能使用了该原创 2018-01-26 14:40:09 · 221 阅读 · 0 评论 -
C语言 : 函数
1.声明与定义的区别:函数的声明只是说明函数的名字,不涉及函数的实现,只包括:类型标识符,函数名,形参列表;而函数的定义包括:类型标识符,函数名,形参列表以及函数体。2.简单的变量或数组元素作为函数参数:调用函数不会影响到主函数中实参变量的值,即是单向的;3.指针变量或数组名作为函数参数:调用函数不会影响到主函数中实参指针变量或数组名所表示的地址,即对被调用函数原创 2018-01-26 14:41:48 · 143 阅读 · 0 评论 -
请编写一个C函数,该函数将一个字符串逆序
1# include 2 # include 3 4 void C(char *p,int len) 5 { 6 int i; 7 8 for(i=len-1;i>=0;i--) 9 { 10 printf("%c",*(p+i)); 11 } 12 printf("\n原创 2018-01-26 14:53:03 · 517 阅读 · 0 评论 -
输入一个字符串,计算字符串中子串出现的次数
1 # include 2 # include 3 4 int sub(char *p1, int l1, char *p2, int l2) 5 { 6 int i, n=0; 7 8 for(i=0;i 9 { 10 if(strncmp(p1,p2,l2)==0) 11 {原创 2018-01-26 15:43:18 · 2651 阅读 · 2 评论 -
编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构.
这里使用了指针数组来实现单词位置倒置,而不改变单词内部结构,除此之外,还可以用字符串,遇到空格即结束,通过使用指针的移动来实现单词的输出。 1 # include 2 3 void C (char *s1[]) 4 { 5 int i; 6 for(i=3;i>=0;i--) 7 { 8 printf(原创 2018-01-26 15:50:20 · 868 阅读 · 0 评论 -
请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
1 # include 2 3 void C(int n,int jin) 4 { 5 int tmp = jin, i = 0, k, m=n, flag=0; 6 int ch[32] = {0}; 7 8 while(m>0) 9 { 10 k=m%tmp; 11 c原创 2018-01-26 15:38:25 · 438 阅读 · 0 评论 -
关于指针的十个问题的解答
1. 什么是指针:指针是一个变量,系统会为指针分配内存空间,指针有自己的地址,并且能够存地址。2. 指针的算术运算:(1)指针加减一个整数:如果一个指针指向的是一个数组,如:int a[10], *p;*p = a[5];那么对p + 1就是加一个数组元素,加的是四个字节,使它指向下一个元素。同理,p - 1是使它指向上一个元素。要注意的是对指针进行加减操作时不要越界,原创 2018-01-28 20:58:06 · 607 阅读 · 0 评论