首页 > 其他分享 >学习《C和指针》的总结(1)

学习《C和指针》的总结(1)

时间:2023-08-11 16:46:11浏览次数:33  
标签:总结 char buffer 代码 学习 amount str 指针

一、GDB,我使用的是notepad++,因为它轻量化,再用MinGW作为编译器,配置宏:Compile、Run和GDB。

GDB指令:

1、b 13  :在第十三行打断点

2、r  :运行代码到第十三行

3、n  :运行下一行代码

4、s  :如果下一行是调用函数,使用此指令进入调用函数

5、p a :打印变量a的值,执行一次就打一次

6、display a  :打印变量a的值,执行后,运行一行代码,就打印一次

7、c  :持续运行直至下一个断点或者结束

8、jump 13  :跳回十三行代码

二、EOF :代表文件末尾,在输入完成后,换行,Windows下按(Ctrl+Z)代表EOF,Linux下按(Ctrl+D)代表EOF

三、Notepad++中给代码打注释,注释使用(Ctrl+K),取消注释使用(Ctrl+Shift+K)

四、要保证程序的可移植性,对于要应用不同硬件结构系统的程序要做不同的声明,例如char类型的变量的值控制在signed char 和 unsigned char 的交集中。

五、指针( char *str ; )和数组( char str[1000] ; )在调用时有一个区别是数组有分配的内存空间而指针没有,需要动态分配。

(在今天的第七章第六道编程题,传入指针,但打印传出值却没有,调试一小时,传入值和传出值地址都是一样的但是就是传不出来,然后我就找网上的代码看看哪里的差别,发现可能是指针和数组的区别,结果还真是,

我感觉这种情况是最容易让人崩溃的,编译器也不报错,但是传出的值就是没有或者是错的,就得慢慢debug,一行一行的看,看变量的值和地址,在传入和传出时是否发生变化,但是debug的时候代码也执行不下去就更崩溃了,就是那种信仰崩塌的感觉,

之前就一直相信没有debug还处理不了的问题,但是debug都进行不下去,问题就不知道从哪里入手进行解决了,上网寻找方法,也许还真的有可能的答案的,概率低但是又不是没有)

 1 void
 2 written_amount( unsigned int amount, char *buffer )
 3 {
 4     if( amount == 0 )
 5 /*
 6 ** Special case for zero.
 7 */
 8     strcpy( buffer, "ZERO " );
 9     else {
10 /*
11 ** Store an empty string in the buffer, then begin.
12 */
13     *buffer = '\0';
14     do_one_group( amount, buffer, magnitudes );
15     }
16 }
17 
18 
19 main(){
20     
21     unsigned int a = 0 ;
22     char *str ;
23     
24     scanf("%d",&a);
25     written_amount(a,str);
26     printf("%d\n",a);
27     printf("%s\n",str);
28     
29 }

要把第22行改为

1 char str[1000] ;

 

标签:总结,char,buffer,代码,学习,amount,str,指针
From: https://www.cnblogs.com/linchangchao/p/17620919.html

相关文章

  • 海外优秀学习资源清单
    随着网络的快速发展,我们现在获取知识的资源可谓琳琅满目,但是优质的资源却往往又难以筛选。所以下面作者整理出了33个优质的资源,如果你能持续阅读或者学习的话,相信你很快就会有质的飞跃!当然,你也可以根据你感兴趣的方向挑选其中几个进行关注,所谓弱水三千只取一......
  • 从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
    理解图优化,一步步带你看懂g2o框架小白:师兄师兄,最近我在看SLAM的优化算法,有种方法叫“图优化”,以前学习算法的时候还有一个优化方法叫“凸优化”,这两个不是一个东西吧?师兄:哈哈,这个问题有意思,虽然它们中文发音一样,但是意思差别大着呢!我们来看看英文表达吧,图优化的英文是graphoptimi......
  • C++11实用特性3 --智能指针
    1智能指针在C++中没有垃圾回收机制,必须自己释放分配的内存,否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针(smartpointer)。智能指针是存储指向动态分配(堆)对象指针的类,用于生存期的控制,能够确保在离开指针所在作用域时,自动地销毁动态分配的对象,防止内存泄露。智能......
  • MySQL学习总结
    知者不言,言者不知。1、SQL命令总览可以把SQL分为两个部分:数据操作语言(DML)和数据定义语言(DDL)。(1)数据操作语言(DML)主要是针对表的操作:INSERTINTO-向数据库表中插入数据(增)DELETE-从数据库表中删除数据(删)SELECT-从数据库表中获取数据(查)UPDATE-更新数......
  • java线上应用故障性异常处理,经验总结
    一、摘要由于硬件问题、系统资源紧缺或者程序本身的BUG,Java服务在线上不可避免地会出现一些“系统性”故障,比如:服务性能明显下降、部分(或所有)接口超时或卡死等。其中部分故障隐藏颇深,对运维和开发造成长期困扰。笔者根据自己的学习和实践,总结出一套行之有效的“逐步排除”的方......
  • 《图解密码技术》读后总结
    十分不耐烦,乃为人大病。内容1、密码学家工具箱:对称密码、公钥密码、单向散列函数、消息认证码、数字签名(证书)、伪随机数,这六类密码技术统称为密码学家工具箱。2、编码、位运算与加解密编码:将现实中的东西映射为比特序列的操作称为编码,编码通常是针对文字及图形符号。例如,......
  • 01、机器学习(吴恩达)
    1、机器学习简介机器学习的应用机器学习的定义ArthurSamuel(1959)下的定义是:在没有被明确编程的前提下,赋予计算机学习能力的研究ArthurSamuel(阿瑟·塞缪尔)的小故事:阿瑟·萨缪尔是人工智能研究的先驱。他编写了一个下棋的程序,该程序能够自己学习,自己与自己对弈几百万......
  • 面试算法学习1
    蛇形矩阵微软面试题题目描述输入两个整数\(n\)和\(m\),输出一个\(n\)行\(m\)列的矩阵,将数字\(1\)到\(n\timesm\)按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数\(n\)和\(m\)。输出格式输出满足要求的矩阵。矩阵占\(......
  • 【C#学习笔记】什么是多态
    什么是多态?就是一个对象,调用同一个方法,却有不同的表现?一个对象怎么可能调用同一个方法,怎么可能会有不同的表现呢?是参数类型不一样还是参数数量不一样?不,那些都是重载。多态必须建立在继承之上。多态的三种实现方式:虚函数、抽象类、接口。......
  • golang 学习笔记
    1.函数调用时传递的参数为拷贝的副本,在函数内部改变参数的值不会影响原变量。但是golang中slice、map、channel、pointer、function是引用类型,赋值时拷贝的是指针值,对这些变量作出修改时会影响原变量的值。2.array(数组)与slice(切片)的区别1.array1. 长度......