![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C
2020.9从入门到精通
好吃的梅梅子
这个作者很懒,什么都没留下…
展开
-
用getchar()读取到的字符以不同形式输出
getchar()函数本身返回值类型为char型,每次读取一个字符,将此字符自动转换为该字符对应的ASCII码,且getchar可一次输入一串字符,通过重复调用getchar()依次读取。原创 2021-06-11 18:25:37 · 617 阅读 · 0 评论 -
Integer division by zero
int result = 0; int a = 0, b = 0; printf("%d", a / b);Integer division by zero编写程序涉及到除法运算时,需注意:在除法运算前要进行除数是否为0的检查改为int result = 0;int a = 0, b = 0;if(b != 0) printf("%d", a / b);...原创 2021-06-11 18:23:26 · 6969 阅读 · 1 评论 -
C语言中的*与&
int a = 10;int *b = &a;printf(“%d\n”, a);printf(“%d\n”, &a);printf(“%d\n”, b);printf(“%d\n”, *b);结果:106487620648762010-------------------------a:存储地址内的数据;&a:存储地址;b:b中存储的是a的地址,故b相当于&a;*b:取出b中的存储地址对应的数据,即a;...原创 2021-06-08 22:51:02 · 212 阅读 · 2 评论 -
地址、数组例题
若有定义:int a[5],*p=a; 则对a数组元素地址正确引用的是(p+2 )。对a数组元素地址正确引用 p+2 。p指向a首地址(也就是a[0]的地址),p+2就是a[2]的地址,相当于&a[2]。&a[5]是错的,访问越界了,数组元素最后一个是a[4]。a表示数组的首地址,本身是地址常量,不能赋值。所以a++是错了。&a也是错的,a本身就是地址。...转载 2021-06-08 13:45:51 · 865 阅读 · 2 评论 -
关于*是钥匙取这块地址内的值这个说法
#include<stdio.h>int main() { char a[20] = { 0 }; scanf_s("%s", a, 20); printf("%s", *a);}printf里不能在a前加*原创 2021-06-08 13:44:39 · 71 阅读 · 2 评论 -
C语言二维数组
http://c.biancheng.net/view/1829.html转载 2021-06-08 10:18:56 · 80 阅读 · 0 评论 -
C Primer Plus第一章习题
1.对编程而言,可以执行意味着什么?答:意味着可以源代码在不同的系统环境下可以直接或稍加修改就能运行。answer:通过编译器,将源代码编译、生成目标系统的可执行程序。略加修改C语言源代码,就可以编译、生成多种目标系统的应用程序。2.解释源代码文件、目标代码文件和可执行文件有什么区别?答:首先,三者拓展名分别为.c .obj .exe。其次,源代码文件为程序员使用语言编辑器用高级语言直接编写的代码,计算机不能识别;目标文件为编译器将源代码文件编译之后的文件,包含由源代码翻译而来的机器语言,是一种中原创 2021-05-27 00:13:39 · 163 阅读 · 0 评论 -
getchar()作用
就目前而言,我所遇到的getchar()有两处(1)在程序末尾加getchar(),用来让程序不会立即退出,跟system(“pause”);是一样的功能.可能你在写完代码后用ctrl + F5运行时,不加getchar();程序也不会立即退出,这是当然的,编译器有这个功能.不过如果你从debug文件夹下用.exe文件打开代码,没有getchar()或system(“pause”);程序会闪一下就消失,可能就零点几秒.getchar();让程序停留在这一步,直到它从键盘接收到消息.(2)在两次连续从键盘转载 2021-03-13 16:24:34 · 6445 阅读 · 1 评论 -
循环体内的scanf语句被跳过执行
char rank;while(1){printf("请输入该生等级:");scanf("%c",&rank);//getchar();此句是关键,先注释掉,看没有这句的运行结果switch(rank){ case 'A':printf("该生成绩为85~100。\n");break; case 'B':printf("该生成绩为70~84。\n");break; case 'C':printf("该生成绩为60~69。\n");break; case 'D':printf("该原创 2021-03-13 16:20:29 · 677 阅读 · 0 评论 -
if语句实例优化
输入两个实数a、b,按数值由小到大的顺序输出这三个数。以下为我初次编写的代码:#include <stdio.h>int main(){int a,b;printf("请输入两个实数a和b:\n");scanf("%d%d",&a,&b);if(a<b)printf("%d%d",a,b);else printf("%d %d",b,a);return 0;}听过猴博士课程解析后了解了其实只需用1个if语句就可以搞定,而无需使用else语句补充,原创 2021-03-13 14:54:55 · 174 阅读 · 1 评论 -
逗号运算符
逗号运算符,是二元运算符。运算优先级最低,运算顺序自左向右,返回值为右端表达式。Example:#include <iostream>using namespace std;void main(){ for (int i = 0; i <= 10; i++, i++) cout << i << endl;}for语句最后一项,先运算逗号左边表达式,再运算逗号右边表达式,即先加一,再加一,每次加二。运算结果为:...原创 2020-12-09 17:17:53 · 1006 阅读 · 1 评论 -
利用swap函数理解值传递、地址传递
#include <iostream>using namespace std;int a = 1, b = 2;void swap(int a, int b);//pass by valuevoid swap(int a, int b){ int temp; temp = a; a = b; b = temp; cout << "pass by value: a" << a << " b" << b << en原创 2020-12-07 17:02:30 · 1309 阅读 · 0 评论 -
c-头文件有哪些?
1.错误处理 errno.h2.字符处理 ctype.h3.地区画 local.h4.数学函数 math.h5.信号处理 signal.h6. 输入输出 stdio.h7.使用工具程序 stdlib.h8.字符串处理 string.h原创 2020-11-21 20:44:17 · 562 阅读 · 0 评论