c语言
gongdileidechouzhu
这个作者很懒,什么都没留下…
展开
-
声明和初始化
c语言中需要声明,初始化。变量、函数、数组、指针、字符、字符串的声明和初始化。原创 2016-08-04 16:17:59 · 545 阅读 · 0 评论 -
运算符的用法
1、++、– x=10; y=x++; y=++x; 第一条语句执行完x=11,y=10;相当于先执行y=x然后x=x+1 第一条语句执行完x=11,y=11;2、&、&& &:是按位与。例如:int x=5&6;x=(101)Λ(110)=(100)=4 &&:是逻辑与。判断两段逻辑的真假。结果只有0或者1。原创 2017-02-25 13:56:36 · 261 阅读 · 0 评论 -
关于getchar、putchar
首先给出《The_C_Programming_Language》这本书中的例子:#include <stdio.h>int main(){ int c; c = getchar(); while (c != EOF) { putchar(); c= getchar(); } return 0;}这里主要解释转载 2017-03-03 21:23:02 · 250 阅读 · 0 评论 -
字符串(二)strcmp、strncmp的实现
#include<stdio.h>#include<stdlib.h>#include<string.h>int mystrcmp(const char *s1, const char *s2){ int i=0; while ((s1[i] != '\0')&&(s2[i] != '\0')&&(s1[i] == s2[i])) { i++;原创 2017-03-03 19:35:45 · 299 阅读 · 0 评论 -
字符串(一)strlen、strcpy、strcat的实现
/返回字符串的长度int mystrlen(char *p){ int a = 0; while ((*p++ )!='\0') { a++; } return a;}//拷贝字符串,将内存source上的值存到另一个内存上char *mystrcpy(char *dest,const char *source){ if (d原创 2017-03-03 00:52:04 · 764 阅读 · 0 评论 -
关于函数是否能改变值
int half(int y){ y++; printf("y=%d\n", y); return y;}int main(void){ int x = 8,c; c=half(x); printf("函数返回值%d\n", c); printf("x的值%d\n", x); return 0;}y=9; c=9; x=8原创 2017-03-03 13:27:09 · 387 阅读 · 0 评论 -
关于复杂语句和++的优先级
++应在前后顺序点之间执行,对操作数进行更新。 顺序点比如逻辑与,逻辑或,条件,逗号,分号,逻辑比较(==、!=)。 函数调用也是这样,在函数调用执行之前,所有的实际参数必须全部计算出来。int a[]=[2,2,5,3]; int *p=a; while(*p++!=5); 此时先执行*p,然后出现了!=顺序点,所以先执行p++,然后判断第一次存储的*p是不是5,也就是执行完这一句,p指原创 2017-03-03 01:15:15 · 328 阅读 · 0 评论 -
结构体与typedef
c语言中结构体有两种表述方式: 1、使用typedef 相当于将stu变成了struct student的别名 /申明结构/ typedef struct student{ (第一行或typedef struct) char name; int year; }stu; /创建实例/ stu s1,s2;2、不使用typedef (1)struct sudent{ … } s原创 2017-02-19 20:29:50 · 254 阅读 · 0 评论 -
c语言中的rand函数
函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。 返回值:返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。rand并不能产生真正的随机数,是伪随机序列,具体见下程序:#inc转载 2016-10-08 12:37:49 · 394 阅读 · 0 评论 -
指针初识(一)
数组与指针数组名是指向数组第一个元素的指针,二维数组可以看成指向指针的指针,即int multi[2][4],multi可以看成指向multi[0]的指针,而multi[0]指向multi[0][0](21天学通c语言p251)例1(数组与指针的声明): int a[3][4] 一个3*4的int类型的数组 int (*b)[3][4] 一个指针,指向3*4的int类型的数组原创 2016-10-06 13:10:51 · 272 阅读 · 0 评论 -
小程序(一)
1、从字符串中s中删除所有小写字母c#include<stdio.h>void fun(char *l);int main(void){ char s[10]; gets(s); puts(s); fun(s); puts(s); return 0;}void fun(char *l){ int i, j=0; fo原创 2016-10-27 13:57:48 · 308 阅读 · 0 评论 -
c语言的数值运算
不同类型数值运算原创 2016-10-26 20:08:51 · 1875 阅读 · 0 评论 -
关于语句是否能改变变量的值
除了赋值类运算符(带等号的各种运算符,如*=、<<=)之外,只有++和- -才能改变变量的值(其实++和- -也算作赋值类运算符)。例如,表达式“x<<2”,是将变量x在运算器中进行移位操作运算,结果仍存在运算器中,后续的运算占用运算器时该值即被丢弃,变量x的值也不会改变。原创 2016-11-07 17:25:27 · 1045 阅读 · 0 评论 -
函数参数调用指针、结构体
一、函数调用指针时 void main(void) { int a,int b; a=5; b=3; fun(&a,&b); } void fun(*p1,*p2) { int c; c=*p1; *p1=*p2; *p2=c; } 1、此时函数声明参数是两个指针,因此主函数中函数的调用参数应该输入两个指针,就是a,b的地址。 2、再次强调,需要改变输入参数的值时函原创 2017-02-23 15:41:18 · 4620 阅读 · 0 评论