学习c语言时对一些疑问的测试
#include<stdio.h>
#include<string.h>
int main(){
/* 1 */
// int a[3][3]={6,1,2,3,4,5};
// int *p=&a[0][0];
// printf("%d\n",&a[0][0]);
// printf("%d\n",&a[0][1]);
// printf("%d\n",&a[1][0]);
// printf("%d\n",*p);
// printf("%d\n",(a+1));
// printf("%d\n",(*a)+1);
// printf("aaa%d\n",a[3][1]);
// printf("%d\n",a[2][1]);
// int a[3][3]={1,2,3,4,5,6,7};
// printf("%d\n",a[0][1]);
// printf("%d\n",a[0][2]);
// printf("%d\n",a[0][4]); // 列索引超过2后, 同样往后遍历, 这里输出为5
/* 列索引一般不会越界,超过列数后,往下一排继续遍历 */
/* 2 */
// int a=4,b=3,c,d=9;
// c = 1||0&&0;
// printf("%d\n",c);
// printf("d=%d\n",d);
/* && 的优先级大于 || */
/* 3 */
// char arr1[]="abcdef";
// char arr2[4]="abcdef";
// char arr3[]={"abcdef"};
// char *arr4 = "abcdef";
// char *arr5[] = {
// "aa",
// "bb",
// "cc"
// };
// printf("%s\n",arr1);
// printf("a=%c\n",arr2[2]);
// printf("%s\n",arr3);
// printf("%c\n",arr4[1]);
// printf("%s",arr5[1]);
/* 上面这些数组的定义都是可行的 */
/* 4 */
// char *a = "abc",b[50]="xyzsdf";
// strcpy(b+1,a);
// printf("%s",b); //a的\0也会替代b中的's'字符, 因此输出到\0为止
// int i;
// for(i=0;i<=6;i++){
// printf("%c",b[i]);
// }
/*
1. 注意字符串复制会复制\0, 而%s遍历到\0为止, 不管后面还有无字符
2. 复制并不是全覆盖, 注意strcpy(b+1,a)
*/
/* 5 */
//#define f(z) z*z
//#define f(z) (z)*(z)
//printf("ddd=%d\n", f(6+6));
/* 宏定义函数, 注意后面运算没加括号时, 实参传过去后再做运算 */
/* 6 */
//float a=1.6;
//int b;
//b= (int)(a);
//printf("%d",b);
/*强制转换类型不会四舍五入*/
/* 7 */
//switch (3){
// default: printf("this is default\n");
// case 1: printf("this is 1\n");
// case 2: printf("this is 2\n");
//}
//printf("-----------\n");
//switch (3){
// case 1: printf("this is 1\n");
// case 2: printf("this is 2\n");
// default: printf("this is default\n");
//}
//printf("-----------\n");
//switch (1){
// case 1: printf("this is 1\n");
// case 2: printf("this is 2\n");
// default: printf("this is default\n");
//}
//printf("-----------\n");
//switch (1){
// default: printf("this is default\n");
// case 1: printf("this is 1\n");
// case 2: printf("this is 2\n");
//}
/*
default放的位置不同, 执行顺序有所不同
大概执行机制为:
先将括号与case后字符做比对, 若无匹配, 则执行default, 并且从上至下执行
若有匹配, 则从匹配行开始从上至下执行(包括default).
以上两种情况都为未加break.
*/
/* 8 */
//struct aa
//{ double r2;
// int r1;
// float r3;
// union uu{
// char u1[5];
// long u2[2];
// }ua;
//}maya;
//
//printf("%d",sizeof(struct aa));
/*未解决的问题*/
/* 9 */
// int a=2,c=5;
// printf("a=%%d,b=%%d\n",a,c);
// printf("a=\%d,b=\%d\n",a,c);
/* c语言中, 想要输出'%', 就在前面外加一个'%' */
/* 10 */
// int a[] = {100,1,70,10,0,5}, *p=a;
// printf("%d",*p+=3);
/*指针符*的优先级大于+=*/
/* 11 */
//int c[]={5,4,3,2,1,0}, *ptr1, *ptr2;
//ptr1 = c;
//ptr2=&c[5];
//
//printf("%d\n", ptr1);
//printf("%d\n", ptr2);
//printf("%d\n", ptr2-ptr1);
/*int数据类型占用4个字节, ptr2-ptr1应该为20, 结果为5*/
/*未解决的问题*/
/* 12 */
//char a[20],b[20],c[20],d[20];
//scanf("%s%s", a, b);
//gets(c);
//printf("%so\n",a);
//printf("%s\n",b);
//printf("%s\n",c);
//scanf("%s", d);
//printf("%saaa",d);
/* 通过scanf("%s")这样的方式给字符串赋值, 字符串不能接收空格字符 */
/* 13 */
//printf("%d\n", sizeof('A'+10+1.2));
//printf("%d\n",sizeof('1'+1));
//printf("%d\n",'1'+1);
/* 运算时的转换规则: char<short<int<unsigned<long<double */
/* 14 */
//char teststr1[]="abcdef", teststr2[]="af";
//printf("aa%daa", strcmp(teststr1, teststr2));
/*
strcmp(str1,str2)匹配字符串, str1大于str2时返回值大于0, 否则返回值小于0, 两者完全相等返回0
依次逐个比较字符的ascii码.
*/
return 0;
}
学习c语言时对一些疑问的测试的更多相关文章
- 学习C语言常用的几个网站
今天整理资料,发现了以前学习C语言时,常用到的几个网站: 1.http://ganquan.info/standard-c/ 改网站包含了C语言标准版的15个头文件解释以及函数,137个函数和演示 ...
- 手把手教你学习R语言
本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...
- 这样学习C语言最有效(高级技巧)——共勉
第一章 学习C语言的起跑线 1.1 C语言已死? 本资料描述的是使用C语言的高级技巧,力求将你的C语言能力由"基础"提升为"高级".但是学习态度胜过学习方法,在 ...
- 笔记:学习go语言的网络基础库,并尝试搭一个简易Web框架
在日常的 web 开发中,后端人员常基于现有的 web 框架进行开发.但单纯会用框架总感觉不太踏实,所以有空的时候还是看看这些框架是怎么实现的会比较好,万一要排查问题也快一些. 最近在学习 go 语言 ...
- 我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没有一个简单的了解,或一个系统的入门学习.换句 ...
- 学习C语言感悟
还记得刚上第一节C语言课的时候,基本上一节课只有最后10分钟的内容听懂了.在此之前从没接触过C语言,想说看看书预习一下吧,可是完全找不到条理,发现老师也不是按书上的顺序讲的.当时就特别着急,想说难道 ...
- 对大一新生开始学习C语言课程谈几点看法
大家好,首先祝贺大家进入了大学,迈入了大学的校门,也意味着开始了新的征程,希望大家能够有一个美好的大学四年. 先做下自我介绍,我叫李帅阳,(大家可以称呼我 李老师,或是班助,或是...)这是在邹欣老师 ...
- 狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(2)
前文链接:狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(1) 小甲鱼在很多情况下是跟着谭浩强鹦鹉学舌,所以谭浩强书中的很多错误他又重复了一次.这样,加上他自己的错误,错谬之处难以胜数. 由于拙 ...
- 新学习的语言Groovy
什么是 Groovy? Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同.在编写新应用 ...
随机推荐
- 如何在pyqt中使用 QGraphicsView 实现图片查看器
前言 在 PyQt 中可以使用很多方式实现照片查看器,最朴素的做法就是重写 QWidget 的 paintEvent().mouseMoveEvent 等事件,但是如果要在图像上多添加一些形状,那么在 ...
- 测试开发实战[提测平台]20-图表G2Plot在项目的实践实录
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. G2Plot项目应用 上一篇<提测平台19-Echarts图表在项目的实践>讲解了Echarts的图表应用,此篇来看下开箱即用 ...
- AT2348 [ARC070D] HonestOrUnkind
不妨先从无解的情况下手,不难发现当 \(A \le B\) 时是一定无解的. 因为不诚实的 \(B\) 个人可以装作是诚实的,全部说自己这一方是诚实的对方是不诚实的我们就无法判断了. 下面我们就可以在 ...
- Net6 DI源码分析Part5 在Kestrel内Di Scope生命周期是如何根据请求走的?
Net6 DI源码分析Part5 在Kestrel内Di Scope生命周期是如何根据请求走的? 在asp.net core中的DI生命周期有一个Scoped是根据请求走的,也就是说在处理一次请求时, ...
- Git远程仓库地址操作
添加 git remote add test1_origin git@github.com:b84955189/test1.git test1_origin:远程地址名,这里是我自定的. git@gi ...
- 取消a标签的默认行动(跳转到href)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python--列表简介
Python--列表简介 目录 Python--列表简介 一.列表 1. 访问列表元素 2. 索引从0而不是1开始 3. 使用列表中的各个值 二.修改.添加和删除元素 1. 修改列表元素 2. 在列表 ...
- 关于Miller-Rabin与Pollard-Rho算法的理解(素性测试与质因数分解)
前置 费马小定理(即若P为质数,则\(A^P\equiv A \pmod{P}\)). 欧几里得算法(GCD). 快速幂,龟速乘. 素性测试 引入 素性测试是OI中一个十分重要的事,在数学毒瘤题中有着 ...
- HTML笔记整理--上节
一.认识WEB 「网页」主要是由文字.图像和超链接等元素构成,当然除了这些元素,网页中还可以包括音频.视频以及Flash等. 「浏览器」是网页显示.运行的平台. 「浏览器内核」(排版引擎.解释引擎.渲 ...
- PHP面试笔试宝典
PHP面试笔试宝典 来自<PHP程序员面试笔试宝典>,涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书. PHP题目 一.单例模式是在应用程序中最多 ...